如何使用 Node.JS 的 restify 框架解析/读取多个参数
Posted
技术标签:
【中文标题】如何使用 Node.JS 的 restify 框架解析/读取多个参数【英文标题】:How to parse/read multiple parameters with restify framework for Node.JS 【发布时间】:2013-03-27 15:54:53 【问题描述】:场景:我们的开发人员正在尝试用 Node.JS Restful API 替换 Web 服务(用 C#.Net 编写)。
问题:现在我们需要按原样处理传入的请求(我们无法控制它)。所以传入的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中读取多个参数
【问题讨论】:
【参考方案1】:你只需要像这样加载查询解析器插件;
server.use(restify.plugins.queryParser());
【讨论】:
是的。这将允许通过 req.query.my_param 读取查询字符串参数。【参考方案2】:Restify 5 (2017) 答案:
从 restify 5 开始,您现在可以像这样设置查询解析器:
server.use(restify.plugins.queryParser());
.
如果你使用这个插件,你可以访问req.query
中的解析参数。
有关其他选项和信息,请查看 restify 文档:http://restify.com/docs/plugins-api/#queryparser
【讨论】:
【参考方案3】:Simon 的回答不再有效,因为 restify 的 queryParser 已移至 restify-plugins 包。更新的解决方案是
server.use(require('restify-plugins').queryParser());
【讨论】:
现在restify-plugins
已被弃用...更新后的解决方案是server.use(restify.plugins.queryParser());
以上是关于如何使用 Node.JS 的 restify 框架解析/读取多个参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 RESTify Node.js 创建 OAuth2.0 服务提供者
Farrow 介绍:类型友好的函数式风格 Node.js Web 框架
Bot Framework Webchat 无法从 Node.js restify 服务器(在 Azure 上)获取令牌:CORS 策略:不存在“Access-Control-Allow-Origin