シナリオ:開発者はWebサービス(C#.Netで記述)をNode.JS Restful APIに置き換えようとしています。
Issue:ここで、着信リクエストをそのまま処理する必要があります(それを制御することはできません)。したがって、次は着信URLの形式です。
http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324&GetDetailType=FULL
次のようなURLを処理できます。
http://www.website.com/service/Trans001/ae67ea324/FULL
上記のURLからパラメーターを解析/読み取ることができます
コード:
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);
});
質問:http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324
のような形式のURLから複数のパラメーターを読み取る方法
クエリパーサープラグインをロードするだけです。
server.use(restify.plugins.queryParser());
Restify 5(2017)の回答:
RESTIFY 5以降、クエリパーサーをserver.use(restify.plugins.queryParser());
のように設定できるようになりました。
このプラグインを使用すると、req.query
の解析済みパラメーターにアクセスできます。
追加のオプションと情報については、restifyのドキュメントをご覧ください。 http://restify.com/docs/plugins-api/#queryparser
RestifyのqueryParserがrestify-pluginsパッケージに移動されたため、Simonの回答は無効になりました。更新されたソリューションは
server.use(require('restify-plugins').queryParser());