首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hapi.js插件回调有什么用?

Hapi.js插件回调有什么用?
EN

Stack Overflow用户
提问于 2017-10-03 19:40:38
回答 1查看 335关注 0票数 0

我是来自express.js的hapi.js新手,我正在尝试理解hapi.js插件概念和express.js中间件之间的区别(如果有的话)。在一些示例和教程中,我看到了插件注册过程中的回调。例如:

代码语言:javascript
复制
// load one plugin
server.register(require('myplugin'), (err) => {

    if (err) {
        console.error('Failed to load plugin:', err);
    }

    server.route({
        method: 'GET',
        path: '/test',
        handler: function (request, reply) {
           reply('test passed');
        }
    });
});

所以我的问题是:在插件注册的回调中声明rest路由与在外部声明此路由有什么用处?

更一般地说,我想知道hapi.js框架中插件的执行与express.js中的中间件(在express.js中)的不同之处。当处理请求时,中间件一个接一个地执行,直到最后一个中间件被调用。在hapi.js中也是这样吗?)

感谢您的回答

EN

回答 1

Stack Overflow用户

发布于 2017-10-12 05:00:52

hapi.js中插件注册的顺序与请求生命周期无关。然而,您的插件可能需要以特定的顺序声明,因为依赖问题,如果您需要在插件注册后运行一些代码。

下面是一个需要此回调的示例:

代码语言:javascript
复制
server.register(require('hapi-auth-jwt'), err => {
 if (err) {
   console.log(err);
   return null;
 }
 server.auth.strategy('token', 'jwt', {

   key: process.env.JWT_SECRET,

   verifyOptions: {
     algorithms: ['HS256']
   }
 });
 server.register(/*other plugins*/)
}

还要记住,插件注册函数可以是异步的(只要您愿意,就可以调用next() )

hapi的架构与express有很大的不同。你可以把它看作是块(插件)而不是层(中间件)。它也是面向“基于代码的配置”的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46543746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档