2017-02-20 2 views
0

HTML формаНе удается получить значение req.body.value в виде

<form method="post" action="/login"> 
    <input type="text" name="user_vi" placeholder="User name vi" value="usernametest"> 
    <input type="text" name="email_vi" placeholder="Email vi"> 
    <br/> 
    <input type="text" name="user_en" placeholder="User name en"> 
    <input type="text" name="email_en" placeholder="Email en"> 
    <input type="submit" value="Submit"> 
</form> 

app.js

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 
// parse application/x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: false })); 
// parse application/json 
app.use(bodyParser.json()); 
app.set('views', './views'); // specify the views directory 
app.set('view engine', 'ejs'); // register the template engine 
app.get('/', function(req, res) { 
    res.render('index', { title: 'Home page', message: 'Home there!' }) 
}); 
app.get('/login', function(req, res) { 
    res.render('login', { title: 'Login', message: 'Login there!' }) 
}); 
app.post('/login', function(req, res) { 
    var lang = 'vi'; 
    var user_name = 'user_' + lang; 
    //console.log(user_name); 
    //result = "user_vi" 
    console.log(req.body.user_name); 
    //result = undefined 
    console.log(req.body.user_vi); 
    //result = 'usernametest' 
    res.render('login', { 
     title: 'Login', 
     message: 'Login there!' 
    }); 
}); 
app.listen(3000, function() { 
    console.log('connect port 3000'); 
}); 
var lang = 'vi'; 
var user_name = 'user_' + lang; 
//console.log(user_name); 
//result = "user_vi" 
//console.log(req.body.user_vi); 
//result = 'usernametest' 
console.log(req.body.user_name); 
//result = undefined 

Я не могу получить значение здесь (req.body.user_name). Как я могу это получить?

ответ

0

req.body - это объект. вы неправильно используете ключ.

Ваш объект тела будет таким.

body{ 
"user_vi":"value", 
"email_vi:"value", 
"user_en":"value", 
"email_en":"value" 
} 

req.body.user_name неправильный путь доступа, потому что user_name переменная не является ключевым. это будет искать объект тела для ключа "user_name", который является недействительным ключом.

вот правильный способ доступа через переменную. использовать req.body[user_name]

1

Вы используете неправильное имя элемента с user_name, который на самом деле user_en.

Как-то попробовать req.body.user_en.

Дайте ему попробовать, он должен работать.

0

Просто доступ к телу запроса по ключу:

request.body[key]; 

В вашем случае:

request.body[user_name]; 

Будет ли решить эту проблему!

+0

Хорошо, спасибо! –

Смежные вопросы