node.js - node.js Express.js req.body 未定义

我有这个作为我的Express服务器的配置


app.use(app.router); 


app.use(express.cookieParser());


app.use(express.session({ secret:"keyboard cat" }));


app.set('view engine', 'ejs');


app.set("view options", { layout: true });


//Handles post requests


app.use(express.bodyParser());


//Handles put requests


app.use(express.methodOverride());



但是当我在我的路由中请求 req.body.something 时,我得到了一些错误指出 body is undefined 。 下面是使用 req.body的路由的示例:


app.post('/admin', function(req, res){


 console.log(req.body.name);


});



我读到这个问题是由缺少app.use(express.bodyParser())引起的;但是你可以看到我在路由之前调用它。

任何线索?

时间:

你必须确保在定义路由之前定义所有配置。 如果这样做,你可以继续使用 express.bodyParser()

下面是一个示例:


var express = require('express'),


 app = express(),


 port = parseInt(process.env.PORT, 10) || 8080;



app.configure(function(){


 app.use(express.bodyParser());


 app.use(app.router);


});



app.listen(port);



app.post("/someRoute", function(req, res) {


 console.log(req.body);


 res.send({ status: 'SUCCESS' });


});



...