我有这个Hapi.js服务器需要2个端点来执行Basic auth(使用hapi-auth-basic模块)。用于检查“用户名/密码”的每个端点逻辑是不同的,因此我将这两个东西分解为他们自己的插件。
目前这就是我注册插件的方式:
...
server.register([Basic,
...
require('./auth/register-device'),
require('./auth/sender'),
...
], (err) => {
....
虽然这有效,但我必须确保基本插件也正在注册。
我试图在我的插件寄存器方法中注册Basic插件(我已将其删除并移至上述文件中):
https://github.com/salty-pig/Salty-Pig/blob/master/auth/sender.js#L29,但是当我为两个插件执行此操作时,我收到了基本插件已经注册的错误。
我想我想知道这里的最佳做法应该是什么。在我的情况下,这是有效的,因为我没有分发这些“auth”插件。
问题2将是:如果我有一个插件我想进入一个npm模块,需要包含另一个插件,那么最佳实践是什么。
感谢
答案 0 :(得分:2)
如果你正在编写一个依赖于其他插件的插件,你可以使用Hapi server.dependency
API:
exports.register = function (server, options, next) {
server.dependency('hapi-auth-basic', function(server, next) {
server.register([
// register plugins that depend on hapi-auth-basic here
], (err) => {
});
});
next();
};
您可以为server.dependency
提供一个数组来指定多个依赖项。