我们是否需要使用插件进行模块化

时间:2017-08-24 01:21:24

标签: hapijs

是否必须使用插件来模块化代码。我们可以创建js文件并将处理程序和路由放在不同的js文件中,并根据需要导出它们以实现模块化。

1 个答案:

答案 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
})

你现在决定哪一个看起来更干净,模块化..