Node.js: Express app.get mit mehreren Abfrageparametern

7

Ich möchte die yelp API abfragen und habe folgende Route:

%Vor%

Wenn ich eine GET-Anfrage an

mache

http://localhost:3000/yelp?term=food&location=austin ,

Ich bekomme den Fehler

%Vor%

Was mache ich falsch?

    
tldr 26.09.2013, 05:25
quelle

3 Antworten

10

Haben Sie versucht, es so zu nennen?

%Vor%

Die URL, die Sie anrufen müssen, sieht normalerweise genauso aus wie die Route. Sie können sie auch wie folgt ändern:

%Vor%

Um es ein wenig hübscher zu machen:

%Vor%     
luto 26.09.2013, 05:51
quelle
8

In der angeforderten URL http://localhost:3000/yelp?term=food&location=austin

  • Basis-URL / Adresse ist localhost:3000
  • Die zum Abgleich verwendete
  • Route ist /yelp
  • Querystring-URL-codierte Daten sind ?term=food&location=austin , d. h. Daten sind alles nach?

Abfragestrings werden nicht berücksichtigt, wenn diese Übereinstimmungen erzeugt werden, zum Beispiel würde "GET /" mit der folgenden Route übereinstimmen, ebenso wie "GET /? name = tobi".

Sie sollten also entweder:

  • benutze app.get ("/ yelp") und extrahiere den Begriff und den Ort aus req.query wie req.query.term
  • benutze app.get ("/ yelp / term /: term / location /: location") aber ändere die URL entsprechend wie beschrieben.
user568109 26.09.2013 06:07
quelle
4

Ich möchte zu @ lutos Antwort hinzufügen. Es ist nicht erforderlich, Abfragezeichenfolgenparameter in der Route zu definieren. Zum Beispiel behandelt die Route /a die Anfrage nach /a?q=value .

Die URL-Parameter sind eine Abkürzung, um alle Übereinstimmungen für ein Routenmuster zu definieren, so dass die Route /a/:b mit

übereinstimmt
  1. /a/b
  2. /a/c
  3. /a/anything

es passt nicht

/a/b/something oder /a

    
Akshat Jiwan Sharma 26.09.2013 06:03
quelle

Tags und Links