2017-02-20 24 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

好的,謝謝你! –