3

我在 Node.js 上使用 Express 中的app.getand函数。app.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'));
  }
});

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

4

2 回答 2

2

用于req.query.statusGETreq.query['status']请求。

于 2013-10-02T18:51:19.687 回答
2

我强烈建议使用

req.param('status') //

查找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')
}
于 2013-10-02T19:15:18.740 回答