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
Vous avez juste besoin de charger le plugin de l'analyseur de requêtes comme ceci;
server.use(restify.plugins.queryParser());
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
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());