app.get和app.post在node.js中获取值

时间:2013-10-02 18:48:28

标签: javascript node.js express

我在Express.js上使用Express中的app.getapp.post函数。

我有这样的例子:

app.post('/status', function(req, res) {
  if (~packages.STATUSES.indexOf(req.body['status'])) {
    res.status(req.body.status, req.body.message);
    res.jsonp(new packages.Success('status updated'));
  } else {
    res.jsonp(new packages.Error('invalid status'));
  }
});

如果我将数据发布到服务器,这将起作用,我注意到它通过

得到了值
req.body['status'];

如果我使用GET并在此处传递值,该怎么办?我该怎么做才能获得“状态”?

app.get('/status', function(req, res) {
// how can I get status... var status = ??
  if (~packages.STATUSES.indexOf(status) { //got value
    res.status(req.body.status, req.body.message);
    res.jsonp(new packages.Success('status updated'));
  } else {
    res.jsonp(new packages.Error('invalid status'));
  }
});

对不起,如果它听起来很愚蠢,但我做了一些研究,在网上找不到任何例子。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

使用req.query.statusreq.query['status']进行GET请求。

答案 1 :(得分:1)

我强烈建议使用

req.param('status') //

looks up req.body / req.query以及req.params,因此您可以将以下所有三条路线映射到同一方法

app.get('/status',statusHanlder);
app.post('/status', statusHanlder);
app.get('/status/:status', statusHanlder)

var statusHanlder = function(req, res){
  var status = req.param('status')
}