使用express bodyParser之后,request.body未定义

编辑:我解决了使用:

app.configure(function(){ app.use(express.bodyParser()); }); 

原文:

我试图找出如何处理与节点的职位,expression,我完全卡住了。

经过一些阅读后,我注意到有人说我应该使用“中间件”,无论如何创build一个线app.use(express.bodyParser()); 。 我认为,添加后,我会在我的post方法中有一个req.body可用。 但情况并非如此。 它把console.log变成了一个undefined

我想我不知道如何正确地设置这个,所以这里什么都不做:

 var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path') , UserProvider = require('./userprovider').UserProvider, qs = require('querystring'); var userProvider = new UserProvider('localhost', 27017); var app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(8080); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); app.get('/new_game', function (req, res) { res.sendfile(__dirname + '/new_game.html'); }); app.post('/new_game', function(req, res) { var codeToUse = Math.random()*10000; codeToUse = Math.round(codeToUse); console.log(req.body); }); app.use(express.bodyParser()); app.listen(3000); 

虽然你现在说过你的代码有效,但是我不会build议你在选项中使用bodyParser

 app.configure() 

它所做的就是,如果你像你一样使用它,任何文件都可以发送到你的系统中,以便发送所有的请求。 如果你使用,会更好

 express.json() 

 express.urlencoded() 

app.configure()的选项中,并且当你期望一个文件在各自的post过程中使用bodyParser这样的话

 app.post('/upload', express.bodyParser(), function(req, res){//do something with req.files})