Issue
I want to query the yelp api, and have the following route:
app.get("/yelp/term/:term/location/:location", yelp.listPlaces)
When I make a GET request to
http://localhost:3000/yelp?term=food&location=austin
,
I get the error
Cannot GET /yelp?term=food&location=austin
What am I doing wrong?
Solution
In the requested url http://localhost:3000/yelp?term=food&location=austin
- base url/address is
localhost:3000
- route used for matching is
/yelp
- querystring url-encoded data is
?term=food&location=austin
i.e. data is everything after ?
Query strings are not considered when peforming these matches, for example “GET /” would match the following route, as would “GET /?name=tobi”.
So you should either :
- use app.get(“/yelp”) and extract the term and location from req.query like
req.query.term
- use app.get(“/yelp/term/:term/location/:location”) but modify the url accordingly as luto described.
Answered By – user568109
This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0