在Node.js中使用Express.js获取POST参数

我想要使​​用Express请求后获取一些POST参数,但我无法获取数据。 这是我的app.configure

 app.configure(function() { app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(gzippo.staticGzip(__dirname + '/public')); app.use(gzippo.compress()); }); 

在POST HTTP请求之后,我试图在控制台输出它:

 console.log(req.body); 

对象总是空的。

任何想法,我忘了什么?

我唯一需要做的是从这个代码中添加body parser和app.post行:

 app.use(express.static(__dirname + '/public')) .use(express.favicon()) .use(express.bodyParser()) .use(express.cookieParser(COOKIE_P)) .use(express.session()); app.post('/',function(req,res){ res.writeHead(200,{"content-type":"text/html;charset=UTF8;"}); res.end("POST"); console.log(req.body); }); 

我的失败是尝试从app.get而不是app.post获取值。

你必须使用req.body来获取正文参数。 您也必须在HTML代码中使用表单。

例:

 <form action="myaction" method="post"> <input name="address" id="address" type="text" /> <button type="submit" value="Send" /> </form> 

在你的表格中:

 var address = req.body.address; //get address value 

尝试交换以下几行:

 app.use(express.bodyParser()); app.use(express.methodOverride());