从中间件通过req.body传递变量

时间:2016-03-18 21:53:39

标签: javascript node.js express middleware

我有一个像

这样定义的中间件
app.use('api/', authenticate, bar);

在authenticate函数中,我在req.body中附加了一个变量

req.body.user = foo;

但是当我在酒吧里面做console.log(req.body.user)时;我找到了undefined.但是,如果我附加了req.user = foo之类的变量,然后在bar函数中,我会console.log(req.user)成功打印foo。是否有任何理由附加req.body的变量正在丢失它附带的东西?

1 个答案:

答案 0 :(得分:2)

工作得很好......

var express = require('express');
var app = express();

var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json

app.use('*', function(req, res, next){
    console.log("Middlewarez");
    req.body.user = { name: "John", last: "Smith" }
    next();
}, function(req, res){
    console.log("Handler")
    console.log(req.body);       // => { user: { name: 'John', last: 'Smith' } }
    res.end("Done");
})

app.listen(8080);

也许你没有使用身体解析器?