web-dev-qa-db-ja.com

Node.JSのRestifyフレームワークで複数のパラメーターを解析/読み取る方法

シナリオ:開発者は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から複数のパラメーターを読み取る方法

28
Amol M Kulkarni

クエリパーサープラグインをロードするだけです。

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

Restify 5(2017)の回答:

RESTIFY 5以降、クエリパーサーをserver.use(restify.plugins.queryParser());のように設定できるようになりました。

このプラグインを使用すると、req.queryの解析済みパラメーターにアクセスできます。

追加のオプションと情報については、restifyのドキュメントをご覧ください。 http://restify.com/docs/plugins-api/#queryparser

5
kentor

RestifyのqueryParserがrestify-pluginsパッケージに移動されたため、Simonの回答は無効になりました。更新されたソリューションは

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