我是JavaScript和Node JS的新手,我有这样的情况。当我尝试使用单个参数调用get
express.js
时,一切正常,但当我尝试使用多个参数调用get
时,它会修剪查询。
例如,我有这样的调用和功能
app.get('path/data', myFunc);
// in another file
function myFunc(req, res) {
// do some stuff
}
当网址为path/data?id=5
或path/data?name=foo
时,一切都很好。但是当我在myFunc中使用例如path/data?id=5&name=foo
之类的网址时,我会将网址设为path/data?id=5
。所以我得到了网址的第一部分 - &
之前的标志。
现在我做错了什么?有什么东西我不见了吗?如何在myFunc
中获取整个网址而不进行修剪?
答案 0 :(得分:1)
我发现了问题。我是通过curl
请求的,结果是如果网址中有&
,则shell命令会修剪。所以不需要像这样添加引号
curl "path/data?id=5&name=foo"
答案 1 :(得分:1)
使用
app.get('path/data?:id?:name')
要检索这些值,请使用req.query.id
和req.query.name
。
要访问REST API,您需要点击: http://localhost:8080/demo?id=3&name=stack
因此,您可以在api中添加多个参数。
希望这有帮助。