【发布时间】:2014-10-18 02:30:39
【问题描述】:
我正在使用 hapi.js,但我不清楚一件事。如果我在路径中发出 api 请求传递参数,我可以通过在处理程序中调用 request.params 来获取这些参数。当我以查询的形式请求时,路径应该是什么?在第一种情况下,我在路径属性中放置 /{param} 之类的东西,但在第二种情况下?
【问题讨论】:
我正在使用 hapi.js,但我不清楚一件事。如果我在路径中发出 api 请求传递参数,我可以通过在处理程序中调用 request.params 来获取这些参数。当我以查询的形式请求时,路径应该是什么?在第一种情况下,我在路径属性中放置 /{param} 之类的东西,但在第二种情况下?
【问题讨论】:
您可以使用request.query。四个属性保存请求数据:
headers:原始请求标头(参考 request.raw.headers)。params:一个对象,其中每个键是一个具有匹配值的路径参数名称。payload:基于路由payload.output和payload.parse设置的请求载荷。query:包含查询参数的对象。您可以在API Reference找到更多信息。
编辑:这是一个例子:
var Hapi = require('hapi');
var server = new Hapi.Server(3000);
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
console.log(request.query.example);
}
});
server.start(function () {
console.log('Server running at:', server.info.uri);
});
如果您访问http://localhost:3000/?example=hapi,它会将hapi 记录到控制台。
【讨论】: