我在Express.js上使用Express中的app.get
和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'));
}
});
对不起,如果它听起来很愚蠢,但我做了一些研究,在网上找不到任何例子。谢谢你的帮助。
答案 0 :(得分:2)
使用req.query.status
或req.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')
}