使用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})