2013-01-19 3 views

Antwort

62

req.params enthält Routenparameter (im Pfadabschnitt der URL) und req.query enthält die URL-Abfrageparameter (nach ? in der URL).

Sie können auch req.param(name) verwenden, um an beiden Stellen nach einem Parameter zu suchen (sowie req.body), aber diese Methode ist jetzt veraltet.

req:

+0

Ah, ok, danke, so wird sowohl durch Express zur Verfügung gestellt. Und POST-Daten, auf die ich über req.body.myParam zugreifen kann? –

+0

Rechts. Welche davon zu verwenden ist, hängt davon ab, was du versuchst. – JohnnyHK

+0

Beachten Sie auch: "Der direkte Zugriff auf req.body, req.params und req.query sollte aus Gründen der Übersichtlichkeit bevorzugt werden - es sei denn, Sie akzeptieren wirklich Eingaben von jedem Objekt." - Express-Dokumentation –

122

dieser Strecke diese URL http://www.google.com/hi/there?qs1=you&qs2=tube

Sie haben

app.get('/hi/:param1', function(req,res){}); 

und gegeben gegeben. Abfrage

{ 
    qs1: 'you', 
    qs2: 'tube' 
} 

erf. params

{ 
    param1: 'there' 
} 

Express req.params >>

+7

Ausgezeichnet, wirklich klar! – abernier

+0

Was ist, wenn ich/hi/brauche? – daniel

+0

werfen Sie einen Blick auf req.url oder req.originalUrl oder req._originalUrl, dann teilen Sie die '/' – ruffrey

1

Sie sollten die Abfrage mit Punktnotation jetzt zugreifen können.

Wenn Sie zugreifen möchten, sagen Sie GET Anfrage an /checkEmail?type=email&utm_source=xxxx&email=xxxxx&utm_campaign=XX und Sie erhalten den Abfrage verwendet holen aus.

var type = req.query.type, 
    email = req.query.email, 
    utm = { 
    source: req.query.utm_source, 
    campaign: req.query.utm_campaign 
    }; 

Params für die selbst definierten Parameter für den Empfang Anforderung, so etwas wie (Beispiel) verwendet:

router.get('/:userID/food/edit/:foodID', function(req, res){ 
//sample GET request at '/xavg234/food/edit/jb3552' 

var userToFind = req.params.userID;//gets xavg234 
var foodToSearch = req.params.foodID;//gets jb3552 
User.findOne({'userid':userToFind}) //dummy code 
    .then(function(user){...}) 
    .catch(function(err){console.log(err)}); 
}); 
Verwandte Themen