gpt4 book ai didi

javascript - Hapijs 路由注册模式

转载 作者:行者123 更新时间:2023-12-03 08:50:09 24 4
gpt4 key购买 nike

由于“Inert”插件现在必须单独加载。我想注册我的应用程序的路线。我有2个选择

1) 导出一个以“server”为参数的函数,并将代码编写为

module.exports = function(server) {
server.register('inert', function(err) {});

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

只需从 server.js 中将其调用为 require('./routes.js')(serverObj)

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

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 文件中的路由函数/插件之前注册“inert”插件吗?

最佳答案

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

routes.js

module.exports = [
{
method: 'GET',
path: '/',
handler: function (request, reply) {

...
}
},
...
];

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

index.js

server.register(require('inert'), function (err) {

if (err) {
throw err;
}

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

边问:另外,我应该在调用 server.js 文件中的路由函数/插件之前注册“inert”插件吗?

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

如果您选择在依赖于这些处理程序的插件中注册路由,则可以使用 server.dependency()表达这种依赖性并延迟注册路由,直到加载 inert。这意味着您不必关心在 server.register() 中列出插件的顺序。如果您正在使用大量插件或在大型应用程序/团队中工作,这很有用。

关于javascript - Hapijs 路由注册模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713472/

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