由于“惰性”插件现在必须单独加载。我想注册我的申请路线。我有两个选择
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文件中的路由函数/插件之前,我是否应该注册“惰性”插件?
发布于 2015-09-22 09:42:20
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文件中的路由函数/插件之前,是否应该注册“惰性”插件?
是的,如果您使用的是file处理程序或directory处理程序,您需要确保首先加载了惰性,否则在注册路由时会出现错误。
如果您选择在依赖于这些处理程序的插件中注册路由,则可以使用server.dependency()来表示该依赖项,并将路由注册延迟到惰性加载之后。这意味着您不必关心在server.register()中列出插件的顺序。如果您正在使用大量插件或在一个大型应用程序/团队中工作,则非常有用。
https://stackoverflow.com/questions/32713472
复制相似问题