首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hapijs路由注册模式

Hapijs路由注册模式
EN

Stack Overflow用户
提问于 2015-09-22 09:37:22
回答 1查看 684关注 0票数 0

由于“惰性”插件现在必须单独加载。我想注册我的申请路线。我有两个选择

1)导出以"server“作为参数的函数,并将代码编写为

代码语言:javascript
复制
module.exports = function(server) {
    server.register('inert', function(err) {});

    server.routes([....]);
}

简单地从server.js调用它为require('./routes.js')(serverObj)

2)将路由机制导出为hapi插件

代码语言:javascript
复制
exports.register = function(server, opts, next) {
    server.register('inert', function(err) {});

    server.routes([....]);

    next();
}

并从server.js调用为server.register(require('./routes.js'), function(err) {});

哪一种方法更好/更标准化?或者还有第三条路我不知道。

另外,在调用server.js文件中的路由函数/插件之前,我是否应该注册“惰性”插件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 09:42:20

server.route()可以传递一个路由数组,这样您就可以简单地将路由导出为一个数组:

routes.js

代码语言:javascript
复制
module.exports = [
    {
        method: 'GET',
        path: '/',
        handler: function (request, reply) {

            ...
        }
    },
    ...
];

然后在执行主应用程序设置时要求该文件:

index.js

代码语言:javascript
复制
server.register(require('inert'), function (err) {

    if (err) {
        throw err;
    }

    server.route(require('./routes'));
    server.start(...)
});

侧问:在调用server.js文件中的路由函数/插件之前,是否应该注册“惰性”插件?

是的,如果您使用的是file处理程序或directory处理程序,您需要确保首先加载了惰性,否则在注册路由时会出现错误。

如果您选择在依赖于这些处理程序的插件中注册路由,则可以使用server.dependency()来表示该依赖项,并将路由注册延迟到惰性加载之后。这意味着您不必关心在server.register()中列出插件的顺序。如果您正在使用大量插件或在一个大型应用程序/团队中工作,则非常有用。

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

https://stackoverflow.com/questions/32713472

复制
相关文章

相似问题

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