我是Express的新手,我想解析url参数。我的代码如下:
router.get('/', function (req, res) {
var aCustomerIdValue = req.param.aa;
console.log('In / Function be called: %s',aCustomerIdValue);
res.redirect('/checkouts/new');
});
但控制台显示“未定义”。有什么线索吗? 我的快递是4.0。 先谢谢你了!
答案 0 :(得分:4)
应该是 req.params.aa
而不是req.param.aa
- 请参阅:
但它仅适用于":aa"
等路径的路径中的router.get('/:aa', ...)
参数 - 它会将XXX
从请求保存到 {{ GET /XXX
对于查询参数(最有可能是 GET 请求),请使用req.params.aa
- 请参阅:
它会将req.query
从请求保存到 XXX
GET /?aa=XXX
对于请求正文中传递的参数,请使用req.query.aa
- 请参阅:
它会在 {{中保存请求的正文中传递的req.body
参数(最有可能是 aa
请求) 1}} 强>
其中任何一个也有POST
,按以下顺序搜索:
req.body.aa
req.param('name')
req.params
但已弃用 - 感谢Ben Fortune在评论中指出 - 请参阅:http://expressjs.com/en/api.html#req.body
尝试:
req.body
如果参数在查询字符串中传递,或者:
req.query
如果参数在请求正文中传递。
答案 1 :(得分:1)
确保将body-parser
代码放在server
文件的routes
喜欢这个
var app=repress();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
如果你传递query
个参数,那么可以通过
req.query
如果您要传递parameters
,请通过
req.params