2011-10-11 76 views
0

我正試圖在我的應用程序中註冊一個用戶。這是HTML代碼:從express方法中獲取POST方法的值

<form id="registration_form" action="register" onsubmit="return validateForm();" method="post"> 
     Username: <input type="text" id="username" name="user[name]" /><br /> 
     Password: <input type="password" id="password" name="user[pass]" /><br /> 
     Repeat Password: <input type="password" id="password_repeat" name="user[pass]" /><br /> 
     Email: <input type="text" id="email" name="user[email]" /><br /> 
     <button type="submit" value="Register">Register</button> 
     <div id="error_registration" style="color: red;"> 
     </div> 
    </form> 

我在服務器上執行正在名字的價值,通過和電子郵件。

var express = require('express') 
    , app = express.createServer(
    express.logger(), 
     express.cookieParser(), 
     express.session({ secret: 'keyboard cat' }) 
    ) 
    , io = require('socket.io').listen(app) 
    , mongoose = require('mongoose') 
    , schemas = require('./schemas') 
    , Schema = mongoose.Schema; 

app.listen(80); 
app.configure(function(){ 
    app.use(express.bodyParser()); 
}); 

[...]

app.post('/register', function (req, res) { 
    registerUser(req, function(result){ 
     //do something 
     var username = req.body.username; 
    }); 
}); 

我的問題是:爲什麼用戶名始終是不確定的?我讀錯了嗎?那我該怎麼辦?

謝謝

回答

2

您的變量是用戶不是用戶名。

看:

..input類型= 「文本」 ID = 「用戶名」 NAME = 「用戶 [名]」 ..

而且你總是可以做的console.log(REQ。正文)在終端中查看POST變量。

+0

謝謝你,但它不是問題。我試圖更改變量的名稱,但仍然未定義。此外,如果我嘗試像console.log(req.body)這樣的東西,我只需要[Object object]。我可以嘗試在對象內容上使用一些迭代器,但我會得到很多垃圾...... [編輯]:我只是試圖打印垃圾,實際上我只是得到一個名稱爲「name」的對象,所以我想我發現瞭如何獲得變量!非常感謝:) – Masiar

+1

順便說一句,當你console.log的東西,你得到[對象]使用console.log(JSON.stringify(東西)),而不是。 – alessioalex