2016-03-18 2 views
1

У меня есть промежуточный слой определяется какПередача переменного через req.body из промежуточного

app.use('api/', authenticate, bar); 

Внутри функции AUTHENTICATE, я прилагаю переменный в req.body как

req.body.user = foo; 

в Но когда я a console.log(req.body.user) внутренний стержень; Я нашел undefined. Однако, если я присоединяю переменную, как req.user = foo, а затем внутри функции bar, я делаю console.log(req.user), успешно распечатывая foo. Есть ли какая-то причина, по которой переменная, прикрепленная req.body, теряет то, что прилагается к ней на своем пути?

ответ

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

Возможно, вы не используете тело-анализатор?

+0

Я не настраиваю заголовок 'Content-Type'' application/json', потому что передаю данные с несколькими частями. –

+0

Прохладный. Какой анализатор тела вы используете для многостраничных данных? – Wainage

+0

'bodyParser.urlencoded ({ extended: true, limit: '10mb' })' –