2013-02-09 55 views
1

我试图在使用Express的请求之后获取一些POST参数,但我无法获取数据。这里是我的app.configure使用Express.js在Node.js中获取POST参数

app.configure(function() { 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 

    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 

    app.use(gzippo.staticGzip(__dirname + '/public')); 
    app.use(gzippo.compress()); 
}); 

一个HTTP POST请求后,我尝试ouptut它在控制台:

console.log(req.body); 

的对象始终是空的。

对我忘了什么有什么想法?

回答

3

我唯一需要的要做到这一点,是添加的身体解析器和app.post线从这个代码:

app.use(express.static(__dirname + '/public')) 
    .use(express.favicon()) 
    .use(express.bodyParser()) 
    .use(express.cookieParser(COOKIE_P)) 
    .use(express.session()); 

app.post('/',function(req,res){ 
    res.writeHead(200,{"content-type":"text/html;charset=UTF8;"}); 
    res.end("POST"); 
    console.log(req.body); 
}); 

我的失败是试图从app.get代替app.post得到的值。

4

您必须使用req.body来检索身体参数。您也必须在HTML代码中使用表单。

例子:

<form action="myaction" method="post"> 
    <input name="address" id="address" type="text" /> 
    <button type="submit" value="Send" /> 
</form> 

...

在您的形式:

var address = req.body.address; //get address value 
1

尝试交换下面几行:

app.use(express.bodyParser()); 
app.use(express.methodOverride());