【问题标题】:Make hapi plugin available in modules使 hapi 插件在模块中可用
【发布时间】:2016-03-11 23:01:22
【问题描述】:

我正在重构我的 Hapi 服务器以使用可重用模块,而不是在我的路由处理程序中执行逻辑。我在我的 Hapi 服务器中注册了一个用于 MongoDB 连接池的插件,我希望能够在这些模块中访问它。有没有办法导出服务器对象本身,或者我需要重写我的模块以接受请求对象作为参数?我正在使用节点 0.12.12 和 Hapi 8.4.0。

我已经在定义我的服务器的文件中尝试了module.exports = server;,然后要求来自不同文件的服务器对象(两者都使用var server = require('../index.js').server;var server = require('../index.js')(server);,但我要么得到错误,要么得到undefined .

我能找到的最接近答案的是几年前的这个问题,在旧版本的 Hapi 上:https://github.com/hapijs/hapi/issues/1260 - 但看起来这个问题从未真正解决。

【问题讨论】:

  • 如果你有module.exports = server,那么它就是var server = require('../index.js')

标签: javascript node.js module hapijs


【解决方案1】:

好吧,我是个白痴,但也许这会帮助别人:

根据节点文档,似乎 module.exports 不能在回调中调用。所以我把这个语句移到了我的 index.js 的底部:

module.exports.server = server

然后在我的其他模块中,称为:

var server = require('../index.js');

并且能够以server.server.plugins 访问插件内容

HTH

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多