1

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

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());
});

在 POST HTTP 请求之后,我尝试在控制台中输出它:

console.log(req.body);

对象始终为空。

知道我忘记了什么吗?

4

3 回答 3

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
于 2013-02-09T23:33:55.933 回答
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 获取值。

于 2013-02-10T01:55:17.380 回答
1

尝试交换以下行:

app.use(express.bodyParser());
app.use(express.methodOverride());
于 2013-02-10T00:58:21.917 回答