2017-04-21 48 views
2

我正在使用Chrome中的Restlet客戶端工具發佈帖子請求。在console.log(res)中,我可以清楚地看到存在正確的數據,但仍然收到一條錯誤消息,指出在執行res.body時未定義body。無法在帖子回覆中讀取正文[express.js]

下面是代碼

var express = require('express'); 
var parser = require('body-parser'); 
var mongoose = require('mongoose'); 

var app = express(); 

app.use(parser.urlencoded({extended: true})); 
app.use(parser.json()); 

var db = mongoose.connection; 

var port = process.env.PORT || 8000; 

var router = express.Router(); 

router.use(function(req, res, next) { 
    console.log('Something is happening.'); 
    next(); // make sure we go to the next routes and don't stop here 
}); 

router.get('/',function(req,res){ 
    res.json({msg: 'Welcome to Pre-Health API!'}); 
}); 

var User = mongoose.Schema({ 
     first_name: String, 
     last_name: String 
    },{ 
     collection: 'User', 
     timestamps: true 
    }); 

router.route('/user').post(function(res,req) { 
    var user = mongoose.model('user',User); 
    console.log(req); 
    var new_user = new user({ 
     first_name: req.body.first_name, 
     last_name: req.body.last_name 
    }); 

    user.save(function(err) { 
     if(err) res.send(err); 
     res.json({message: "User created"}); 
    }); 
}); 

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

app.listen(port); 
console.log('API Listening on port: ' + port); 
+0

可以共享的console.log(RES),結果呢? –

+0

確定我會分享它。 –

+0

http://www.jsoneditoronline.org/?id=0f2b9c9af8e986e983049874f4863f4a @JunbangHuang –

回答

2

在你reqres倒置功能,它應該是:

router.route('/user').post(function(req, res) { ...