2016-02-18 4 views
0

Я использую узел с [email protected] и [email protected]NodeJS Request Body Empty

Моя страница нефрит имеет, например, это свойство:

input(type='text',class='form-control', placeholder="Username", name='username', id="username") 

код JavaScript выглядит следующим образом:

var bodyParser = require('body-parser'); 

var express = require('express') 
    , routes = require('./routes') 
    , user = require('./routes/user') 
    , http = require('http') 
    , path = require('path'); 

var app = express(); 
var favicon = require('favicon') 
app.use(bodyParser.json()); 

app.set('port', process.env.PORT || 3000); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.use(function(req, res, next){ 
app.locals.pretty = true 
    next() 
}); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: true 
})); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.get('/create', function(req,res) { 
    res.render("create"); 
}); 

app.get('/creation', function(req,res) { 
    console.log("creation") 
    console.log(req.body) 
}); 

страница создания является первым открыл и есть также имя пользователя поля ввода, но тело запроса пусто в функции/creation. Может ли кто-нибудь помочь?

+0

Используйте 'app.post' для получения данных, отправленных из формы. – cviejo

ответ

0

Вы должны представить форму с помощью метода POST и изменить функцию:

app.post('/creation', function(req,res) { 
    console.log("creation") 
    console.log(req.body); // here will show the values of inputs submited 
}); 

More about express routes.

0

Как мы поняли, тело разбора будет работать на отправке формы или JSON с запросом POST , в этом случае убедитесь, что вы правильно представляете форму, вы можете увидеть запрос POST в firebug или другом инструменте. После того, как оно будет выполнено правильно, вы сможете увидеть элементы кузова на req.body.username

вы можете иметь простую форму.

<form action='post' ..> 
    <input name='username' ..> 
    <input type='submit' ..> 
</form> 

Также я видел два раза промежуточного программного обеспечения app.use (bodyParser.json()); использование. в случае, если вы его пропустили.