获取req.param未定义

我正在使用Expressjs版本4.我在req.param得到'undefined'。 这是我的例子:app.js

var express = require('express'); var bodyParser = require('body-parser'); var newdata = require('./routes/new'); ........................ ...................... app.use(bodyParser()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded()); app.use('/new', newdata); 

./routes/new

 var express = require('express'); var router = express.Router(); router.get('/', function(req, res){ res.render('newdata', { title: 'Add new data' }) }); router.post('/', function(req, res){ console.log(req.param['email']); res.end(); }); module.exports = router; 

newdata.html

 <form action="/new" role="form" method="POST"> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" class="form-control" name="email" placeholder="Enter email"> 

我也尝试了req.bodyreq.params ,但答案仍然是一样的。

req.params引用pathpath中的variables。

 app.get("/posts/:id", ... // => req.params.id 

发布数据可以通过req.body引用

 app.post("/posts", ... // => req.body.email 

这假定你正在使用bodyParser中间件。

然后有req.query ,对于那些?query=strings


你可以使用req.param()作为上面的3中的任何一个。 查找顺序是paramsbodyquery

param是一个函数,而不是一个对象。 所以你需要使用req.param('email');