Gibt es einen Unterschied zwischen dem Erhalten von QUERY_STRING-Argumenten über req.query [myParam] und req.params.myParam? Wenn ja, wann sollte ich welche verwenden?Node.js: Unterschied zwischen req.query [] und req.params
Danke.
Gibt es einen Unterschied zwischen dem Erhalten von QUERY_STRING-Argumenten über req.query [myParam] und req.params.myParam? Wenn ja, wann sollte ich welche verwenden?Node.js: Unterschied zwischen req.query [] und req.params
Danke.
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:
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'
}
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)});
});
Ah, ok, danke, so wird sowohl durch Express zur Verfügung gestellt. Und POST-Daten, auf die ich über req.body.myParam zugreifen kann? –
Rechts. Welche davon zu verwenden ist, hängt davon ab, was du versuchst. – JohnnyHK
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 –