我想查询yelp api,并有以下路线:
app.get("/yelp/term/:term/location/:location", yelp.listPlaces)
当我向
发出GET请求时 http://localhost:3000/yelp?term=food&location=austin
,
我收到错误
Cannot GET /yelp?term=food&location=austin
我做错了什么?
答案 0 :(得分:13)
您是否尝试过这样称呼它?
http://localhost:30000/yelp/term/food/location/austin
您需要调用的URL通常与路径非常相似,您也可以将其更改为:
/yelp/:location/:term
让它变得更漂亮:
http://localhost:30000/yelp/austin/food
答案 1 :(得分:8)
在请求的网址http://localhost:3000/yelp?term=food&location=austin
localhost:3000
/yelp
?term=food&location=austin
,即数据是否为之后的所有内容?执行这些匹配时不考虑查询字符串,例如“GET /”将匹配以下路由,“GET /?name = tobi”也是如此。
所以你应该:
req.query.term
答案 2 :(得分:4)
我想加入@ luto的答案。无需在路由中定义查询字符串参数。例如,路由/a
将处理/a?q=value
的请求。
url参数是定义路由模式的所有匹配项的快捷方式,因此路由/a/:b
将匹配
/a/b
/a/c
/a/anything
它不匹配
/a/b/something
或/a