2017-06-18 232 views
0

我學習MEAN堆棧,我做了一個註冊API,同時使用郵差測試它,我獲得這些奇怪的錯誤是不能發佈API /註冊。無法發佈API /註冊

下面是錯誤的形象:

Error Image

我server.js文件:

var express=require('express'); 
var bodyParser=require('body-parser'); 
var morgan=require('morgan'); 
var config=require('./config'); 
var mongoose=require('mongoose'); 

var app=express(); 

mongoose.connect(config.database,function(err){ 
    if(err){ 
     console.log(err); 
    }else{ 
     console.log("Coonnected to database"); 
    } 
}); 

app.use(bodyParser.urlencoded({extended: true})); 
app.use(bodyParser.json()); 
app.use(morgan('dev')); 

var api=require('./app/routes/api')(app,express); 
app.use('api',api); 


app.get('/home',function(req,res){ 
    res.sendFile(__dirname + '/public/views/index.html'); 
}); 

app.listen(config.port,function(err){ 
    if(err){ 
     console.log(err); 
    }else{ 
     console.log("Listening on port 3000"); 
    } 
}); 

user.js的文件包括:

var mongoose=require('mongoose'); 

var Schema=mongoose.Schema; 

var bcrypt=require('bcrypt-node'); 

var UserSchema=new Schema({ 
    name: String, 
    username: String, 
    password: String 
}); 

UserSchema.pre('save',function(next){ 
    var user=this; 
    if(!user.unModified('password')) return next(); 
    bcrypt.hash(user.password,null,null,function(err,hash){ 
     if(err) return next(err); 
     user.password=hash; 
     next(); 
    }); 

}); 

UserSchema.methods.comparePassword=function(password){ 
    var user =this; 
    return bcrypt.compareSync(password,user.password); 
} 

module.exports=mongoose.model('User',UserSchema); 

api.js文件:

var User=require('../models/user'); 
var config=require('../../config'); 

var secretKey=config.secretKey; 


module.exports=function(app,express){ 

    var api=express.Router(); 

    api.post('/signup',function(req,res){ 

     var user=new User({ 
      name: req.body.name, 
      username: req.body.username, 
      password: req.body.password 

     }); 


     user.save(function(err){ 

      if(err){ 
       res.send(err); 
       return; 
      } 
      else 
       res.json({ message:'User has been created'}); 
     }); 

    }); 

    return api; 
} 

我不知道我錯過了什麼。

+0

您的客戶端員額的要求到端點/ API /註冊,但在服務器上你有路線/註冊。無論是固定或然後再試 –

+0

你嘗試'app.use( '/ API',API);',而不是'app.use( 'API',API);'? – mscdex

+0

另外,請不要發佈文字圖像。相反,在問題中發佈相關文本,以便文本更易於訪問和搜索,並且還可以防止圖像鏈接在某個時間點死亡。 – mscdex

回答

0

使用

app.use('/api',api);

代替

app.use('api',api); 

更多關於express routing