是否必须使用插件来模块化代码。我们可以创建js文件并将处理程序和路由放在不同的js文件中,并根据需要导出它们以实现模块化。
答案 0 :(得分:0)
插件只是Hapi模块化应用程序代码的方式。 例如,在我的应用程序中,我想对请求执行https和www重定向。 最初代码看起来像这样 -
server.ext({
type: 'onRequest',
method: function (request, reply) {
if (/^www\./.test(request.headers.host)) {
return reply()
.redirect('https' + '://' + request.headers.host.replace(/^www\./, '') + request.url.path)
.code(301);
} else {
reply.continue();
}
}
});
之后我创建了一个插件hapi-gate,认为像我这样的其他人也会有这个需求。 现在我的代码看起来像这样 -
server.register({
register: require('hapi-gate'),
options: {https: true,
www: true} // will force https and www on all requests
})
你现在决定哪一个看起来更干净,模块化..