2016-05-13 13 views
0

server.jsKnoten js Post request.body undefiniert

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()); 

Router/main.js

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

I Postbote Tool verwenden !! requets param {"passwort": "pass", "name": "dltlsdn"}

aber ... req.body ist undefind .... why .. ??

+0

können Sie es mit devtool debuggen (https://mattdesl.svbtle.com/debugging-nodejs-in-chrome-devtools) oder setzen Sie Details, was ist in dir ** res ** var? – shershen

+0

Bitte überprüfen Sie Ihren Inhaltstyp Parameter im Postboten. Wenn Sie ein Objekt posten möchten, stellen Sie sicher, dass Sie den Inhaltstyp ** application/json ** verwenden, und wenn Sie als Formularwert posten möchten, verwenden Sie den Inhaltstyp ** application/x-www-form-urlencoded ** –

Antwort

3

Die app.use Anweisung neu anordnen. Früher haben Sie die Anfrage bearbeitet, bevor Sie den Body-Parser durchlaufen haben.

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'); 
}); 

Ich hoffe, es hat Ihnen geholfen.

+0

sehr..sehr nett danke !!! Ich entscheide Antwort –

+0

Wenn es Ihnen geholfen hat, dann nehmen Sie freundlich meine Antwort an. Es motiviert mich, mehr Antworten zu schreiben. Vielen Dank –