【问题标题】:Passing a variable through req.body from middleware从中间件通过 req.body 传递变量
【发布时间】:2016-03-18 21:53:38
【问题描述】:

我有一个像

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

在身份验证函数中,我在req.body 中附加了一个变量

req.body.user = foo;

但是当我做一个console.log(req.body.user) 内栏时;我找到了undefined. 但是,如果我附加像req.user = foo 这样的变量,然后在bar 函数内执行console.log(req.user),它会成功打印foo。附加的变量 req.body 是否有任何原因在途中丢失了附加的内容?

【问题讨论】:

    标签: javascript node.js express middleware


    【解决方案1】:

    工作得很好......

    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);
    

    也许您没有使用正文解析器?

    【讨论】:

    • 我没有设置标题Content-Typeapplication/json,因为我正在传递多部分表单数据。
    • 酷。您对多部分数据使用哪种正文解析器?
    • bodyParser.urlencoded({ extended: true, limit: '10mb' })
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2011-10-19
    • 2014-12-25
    • 2015-06-23
    相关资源
    最近更新 更多