web-dev-qa-db-fra.com

Comment analyser / lire plusieurs paramètres avec Restify Framework pour Node.JS

Scénario: Nous les développeurs essayons de remplacer un service web (écrit en C # .Net) par Node.JS Restful API.

Problème: Maintenant, nous devons traiter la demande entrante telle quelle (nous n'avons aucun contrôle sur elle). Voici donc le format de l'URL entrante:

http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324&GetDetailType=FULL

Je suis capable de gérer l'URL comme:

http://www.website.com/service/Trans001/ae67ea324/FULL

Je peux analyser/lire le paramètre à partir de l'URL ci-dessus

Code:

var server = require('restify').createServer();
function respond(req, res, next) {
    console.log("req.params.UID:" + req.params.UID);
    console.log("req.params.FacebookID:" + req.params.FacebookID);
    console.log("req.params.GetDetailType" + req.params.GetDetailType);
}
server.get('/service/:UID/:FacebookID/:GetDetailType', respond);
server.listen(8080, function () {
    console.log('%s listening at %s', server.name, server.url);
});

Question: Comment lire les multiples paramètres de l'URL formatée comme http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324

28
Amol M Kulkarni

Vous avez juste besoin de charger le plugin de l'analyseur de requêtes comme ceci;

server.use(restify.plugins.queryParser());
74
Simon

Réponse de Restify 5 (2017):

Depuis restify 5, vous pouvez maintenant configurer l'analyseur de requête comme ceci: server.use(restify.plugins.queryParser());.

Si vous utilisez ce plugin, vous pouvez accéder aux paramètres analysés dans req.query.

Pour des options et informations supplémentaires, jetez un œil à la documentation de restify: http://restify.com/docs/plugins-api/#queryparser

5
kentor

La réponse de Simon n'est plus valide car le queryParser de restify a été déplacé vers le package restify-plugins. La solution mise à jour est

server.use(require('restify-plugins').queryParser());
2
therightstuff