2016-05-13 69 views
0

server.js節點JS後request.body不確定

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var session = require('express-session'); 
var fs = require('fs'); 
var router = require('./router/main')(app, fs); 

var server = app.listen(3000, function(){ 
    console.log('Express server has started on port 3000'); 
}); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 

路由器/ main.js

module.exports = function(app, fs) 
{ 
    app.post('/addUser/', function(req, res){ 
     console.log(req.body); 
    }); 
} 

我用郵差工具!請求param {「password」:「pass」,「name」:「dltlsdn」}

但是... req.body is undefind .... why ..?

+0

你可以使用devtool(https://mattdesl.svbtle.com/debugging-nodejs-in-chrome-devtools)進行調試嗎?或者把詳細信息放在裏面?** res ** var? – shershen

+0

請檢查郵遞員的內容類型參數。 如果你想發佈一個對象,然後確保你使用的是** application/json **內容類型,並且如果你想作爲表單值發佈,那麼使用** application/x-www-form-urlencoded **內容類型 –

回答

3

重新排列app.use聲明。之前,您在通過body-parser之前正在處理請求。

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var session = require('express-session'); 
var fs = require('fs'); 

//body parser before routes 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 

var router = require('./router/main')(app, fs); 

var server = app.listen(3000, function(){ 
    console.log('Express server has started on port 3000'); 
}); 

希望它對你有所幫助。

+0

非常好謝謝你!我解決了答案 –

+0

如果它對你有幫助,那麼請接受我的答案。它激勵我寫更多的答案。謝謝 –