Node.js : Express-app.Holen Sie sich mit mehreren query-Parametern
Ich möchte Abfrage, die yelp api, und haben die folgende route:
app.get("/yelp/term/:term/location/:location", yelp.listPlaces)
Wenn ich eine GET-Anforderung an
http://localhost:3000/yelp?term=food&location=austin
,
Bekomme ich die Fehlermeldung
Cannot GET /yelp?term=food&location=austin
Was mache ich falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, Sie anzurufen, ist es so?
Den URL, den Sie aufrufen müssen, in der Regel sieht ziemlich viel wie die Strecke, Sie könnten es auch ändern wollen:
Um es ein wenig schöner:
In der angeforderten url
http://localhost:3000/yelp?term=food&location=austin
localhost:3000
/yelp
?term=food&location=austin
d.h. Daten ist alles nach ?Query-strings werden nicht berücksichtigt, wenn das diese Spiele, zum Beispiel "GET /" würde mit der folgenden route, als würden Sie "GET /?name=tobi".
So sollten Sie entweder :
req.query.term
Möchte ich hinzufügen @luto Antwort. Es besteht keine Notwendigkeit zum definieren von query-string-Parameter in der route. Zum Beispiel die route
/a
mit der Anfrage für/a?q=value
.Den url-Parameter ist ein shortcut zu definieren, der alle Spiele für ein Muster der route, also die route
/a/:b
entsprechen/a/b
/a/c
/a/anything
wird es nicht passen
/a/b/something
oder/a