gpt4 book ai didi

node.js - hapijs 处理程序的多种方法

转载 作者:搜寻专家 更新时间:2023-10-31 23:35:17 26 4
gpt4 key购买 nike

我使用过 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com