如何获得app.post中的后参数

我正在开发nodejs项目。 在express-helpers模块的帮助下,我使用ejs来生成视图模板html。

server.js文件中我写下面的代码

 var http = require('http'); var path = require('path'); var async = require('async'); var socketio = require('socket.io'); var express = require('express'); var app = express(); var helpers = require('express-helpers') helpers(app); var server = http.Server(app); server.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function(){ var addr = server.address(); console.log("Chat server listening at", addr.address + ":" + addr.port); }); app.use(express.static(__dirname + '/public')); app.set('views', __dirname + '/public/views'); app.engine('html', require('ejs').renderFile); app.set('view engine', 'html'); //app.use(express.static(__dirname + '/client')); app.use(express.static(path.join(__dirname, '/client'))); // respond with "index.html" when a GET request is made to the homepage app.get('/', function(req, res) { res.render('index.html'); }); app.get('/demo', function (req, res) { res.render('demo.ejs'); }); app.post('/demo', function (req, res) { console.log(res.body) }); 

我想知道,在app.post应该如何获得后参数

 app.post('/demo', function (req, res) { console.log(res.body) }); 

我已经尝试console.log(req.body)但给作为undefined也试过console.log(res.body)但给作为undefined

让我知道我应该如何执行它?

你应该使用一个中间件,比如body-parser

 var bodyParser = require('body-parser'); app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded app.post('/demo', function (req, res) { console.log(req.body) }); 

使用body-parser中间件。 首先,你需要使用npm install body-parser来安装它。 然后像这样在你的应用程序中使用它

 var bodyParser = require('body-parser'); ..... // For Content-Type application/json app.use(bodyParser.json()); // For x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: true })); .... app.post('/demo', function (req, res) { console.log(req.body); });