2016-03-31 3 views
3

У меня на самом деле очень маленькое приложение в node.js с Express, и я не могу получить доступ к req.body.Невозможно получить доступ к req.body внутри middlewares

Это мой app.js код:

var express = require('express'), 
    middleware = require('./middleware'), 
    mysql = require('mysql'), 
    app = express(); 

app.use(middleware.authenticate); 
app.use(middleware.getScope); 

app.listen(3000); 
module.exports = app; 

И файл с промежуточным программным:

var bcrypt = require('bcrypt'), 
    mysql = require('mysql'); 

function authenticate(req, res, next){ 
    console.log(req.body); 
    next(); 
} 

function getScope(req, res, next){ 
    console.log(req.body); 
    next(); 
} 

module.exports.authenticate = authenticate; 
module.exports.getScope = getScope; 

Во всех случаях req.body является undefined.

Я отправляю данные броском почтальона с протоколом x-www-form-urlencoded, в этом случае является обязательным.

enter image description here

Спасибо !!

+0

Вам нужен [ 'тело -parser'] (https://github.com/expressjs/body-parser). –

ответ

5

Вам нужно добавить body-parser выразить:

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // for parsing application/json 
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded 

Регулярно проверяйте запрос здесь http://expressjs.com/en/api.html

и, возможно, маршрут POST может помочь также:

app.post('/', function (req, res, next) { 
    console.log(req.body); 
    res.json(req.body); 
}); 
Смежные вопросы