2011-10-11 3 views
0

내 응용 프로그램에서 사용자를 등록하려고합니다. 다음은 HTML 코드입니다.ExpressJS의 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 = "사용자 이름"이름 = "사용자 [이름]".. 또한 당신은 항상을 console.log (REQ를 할 수

. body)를 사용하여 단말기의 POST vars를 확인합니다.

+0

고맙습니다.하지만 문제는 아닙니다. 나는 변수의 이름을 바꾸려고했지만 여전히 정의되지 않았다. 게다가 내가 console.log (req.body)와 같은 것을 시도한다면 나는 [Object object]를 얻는다. 객체 콘텐트에 대한 반복자를 시도해 볼 수는 있지만 많은 쓰레기가 발생합니다 ... [편집] : 그냥 정크 인쇄를 시도하고 실제로'name '이라는 이름의 객체를 얻었습니다. 변수를 얻는 방법! 고마워요 :) – Masiar

+1

Btw, console.log에 뭔가가 생기면 [Object object]는 console.log (JSON.stringify (stuff))를 대신 사용하게됩니다. – alessioalex