- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我使用过 express,您可以在其中传递多种方法以传递给如下路由:
app.get('/users/,[
validator.validate,
controller.get
]);
每个函数然后使用 next() 回调将控制传递给数组中的下一个函数。在 hapijs 处理程序中可以做一些等效的事情吗?我希望我的函数既可重用又独立,就像我们为 express 路由处理程序所做的那样。
谢谢。
最佳答案
hapi 有 Route Prerequisites它使您可以在实际处理程序本身之前运行一组类似处理程序的函数。如果您在配置本身之外定义它们,它们都是可重用和独立的。
在 request.pre
对象上设置的每个预获取中生成的值供您的处理程序使用。这是一个例子:
var step1 = function (request, reply) {
reply('The quick brown fox ');
};
var step2 = function (request, reply) {
reply('jumped over the lazy dog.');
};
server.route({
config: {
pre: [
step1,
step2
]
},
method: 'GET',
path: '/',
handler: function (request, reply) {
var response = request.pre.step1 + request.pre.step2;
reply(response);
}
});
默认情况下,每个 pre 将连续运行,类似于 async 中的 async.series/waterfall
函数包裹。如果你想让一组 pres 彼此并行运行,只需将它们放在一个数组中,你就会得到类似 async.parallel
的东西:
server.route({
...
config: {
pre: [
[ step1, step2 ], // these run together
step3 // and then this one
]
},
...
});
关于node.js - hapijs 处理程序的多种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31130095/
我正在查看 hapi 路由的一些身份验证配置选项。我了解范围的工作原理 - 您可以将路由的范围设置为 'admin'这意味着用户的凭据必须具有匹配的范围...但是 entity 的目的是什么? ? 以
我正在使用 lab 编写测试用例我想测试我的插件是否抛出异常。问题是,hapi 允许异常冒泡,同时还设置了对内部服务器错误 500 的响应,这导致我的测试失败。 我们可以测试这个响应 expect(r
在 express 中,我有这样的事情: router.get('/foo', middlewareFunction, function (req, res) { res.send('YoYo
此代码在版本 9.0.3 中不起作用: server.route({ method: 'GET', path: '/', handler: function() {
我在 Joi 验证方面遇到了一个问题(或者我认为是一个问题)。如果它作为请求正文的一部分传递,我正在尝试为不存在的键分配一个值。 例如: parameters: Joi.object().keys({
由于“Inert”插件现在必须单独加载。我想注册我的应用程序的路线。我有2个选择 1) 导出一个以“server”为参数的函数,并将代码编写为 module.exports = function(se
我应该如何使用 HapiJS 实现类似 PHP exec 的系统函数调用?用户提交一个需要在后台运行一段时间的处理作业。 我需要以某种方式向用户返回作业ID/ session ID,异步运行作业,允许
我有一个像这样的routes.js: server.route({ method: 'GET', path: '/marvel/universal/verify/{serial?}',
我执行一些循环时内存不足。我怀疑 HapiJS 正在某种受限模式下运行。 我的开发机器有 i7 和 8GB 内存,但在 Hapi 控制台中我从未看到 Hapi 使用超过 1GB。 如何确保 Hapi
我使用 Joi 库作为我的 CRA 项目的独立验证器,但在触发时 email()验证器我收到神秘错误 Uncaught Error: Built-in TLD list disabled 最佳答案 来
有没有办法访问全局注册的插件?我已阅读有关 hapi-sequelize 的内容,我想将其实现到我的 hapi 应用程序中。这是documentation 。它指出您可以使用以下代码全局访问它: va
所以我有 Hapi (v17.5.1),当我有我的插件数组时 [ { plugin: good, options: { reporters: { errorReporte
我觉得我缺少一些基本的东西,但我不知道如何在 HapiJS 中获得更好的控制台输出。 我正在编写一个 API,当出现错误时它会打印出来。 150516/063815.663, [response],
我对 Hapi 如何处理验证感到有点困惑,根据请求生命周期 ( http://hapijs.com/api#request-lifecycle ),参数/查询的验证仅在身份验证完成后发生。 这样做有意
我有一个返回结果的代码。通常,当我收到该结果时,我会将其发送给客户端,并在此过程中将其转换为纯 JSON 对象。 但现在我需要对该结果集进行一些操作,然后在数据库中进行另一次查找。 我不明白的是结果集
我目前正在使用 hapi,我遇到了一个问题,我似乎找不到任何解决方案或以前提到过。当我发送以下请求时,只有我的第一个查询参数在 request.query 对象中。 curl -H "Content-
我想验证一个字段并允许另一个字段而无需验证;通过示例只是为了验证:“名字”字段。在我的代码中,当我注释“有效载荷”时,hapi 允许我记录任何字段,当我取消注释“有效载荷”时,hapijs 不允许我记
我一直在研究 hapi.js 应用程序并具有以下架构: Database --Models --usermodel.js --anothermodel.js Routes --
有谁知道是什么意思? npm ERR! Test failed. See above for more details. 3 tests complete Test duration: 873 ms
在 hapi.js API 中,他们指定身份验证方案也可以将工件作为凭证对象的一部分返回。 究竟什么是身份验证工件,它们为什么有用?有没有一个很好的例子来说明为什么 hapi 团队将此作为其 API
我是一名优秀的程序员,十分优秀!