作为" 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) {});
哪种方法更好/更标准化?或者有第三种方式我不知道。
方Q:另外,我应该注册' inert'在调用server.js文件中的route function / plugin之前插件?
答案 0 :(得分:1)
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(...)
});
方Q:另外,我应该注册&#39; inert&#39;在调用server.js文件中的route function / plugin之前插件?
是的,如果您正在使用file
处理程序或directory
处理程序,则需要确保先加载inert,否则在注册时会出现错误路由。
如果您选择在依赖于这些处理程序的插件中注册路由,则可以使用server.dependency()
来表示此依赖关系并延迟注册路由,直到加载惰性为止。这意味着您不必关心在server.register()
中列出插件的顺序。如果您正在使用大量插件或在大型应用程序/团队中工作,则非常有用。