获取req.param未定义

pyp*_*ism 10 node.js express

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

./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;
Run Code Online (Sandbox Code Playgroud)

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">
Run Code Online (Sandbox Code Playgroud)

我也试图与req.bodyreq.params,但得到的答复仍然是一样的.

now*_*owk 35

req.params 指路径路径中的变量.

app.get("/posts/:id", ...

// => req.params.id
Run Code Online (Sandbox Code Playgroud)

可以引用发布数据 req.body

app.post("/posts", ...

// => req.body.email
Run Code Online (Sandbox Code Playgroud)

这假设您正在使用bodyParser中间件.

然后就是req.query那些?query=strings.


您可以使用req.param()上述3中的任何一个.在查找顺序是params,body,query.

  • `req.param()`函数已经检查了`req.params`("路径路径中的变量"),`req.body`和`req.query`. (2认同)

msc*_*dex 7

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

  • 那没有任何区别。 (5认同)