修改:我使用以下方法修复了它:
app.configure(function(){
app.use(express.bodyParser());
});
原帖:
我正在试图弄清楚如何处理带节点和快递的帖子,而且我完全卡住了。
经过一番阅读后,我注意到有人说我应该使用“中间件”,无论这意味着什么,并创建一行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);
答案 0 :(得分:2)
虽然您现在已经说过您的代码可以使用,但我不会建议您在
选项中使用bodyParserapp.configure()
它的作用是,如果你像你一样使用它,任何文件都可以发送到你的系统中以获取所有的帖子请求。如果你使用
,那就更好了express.json()
和
express.urlencoded()
在选项中
app.configure()
,
当您希望文件在相应的邮政路线中使用bodyParser时,就像这样
app.post('/upload', express.bodyParser(), function(req, res){//do something with req.files})