【发布时间】:2019-04-18 02:24:37
【问题描述】:
我在 unbound.js 中有函数,代码如下
export default async function connect({ mongoose: mongoose }, URI) {
console.log('in connect');
mongoose.connect(URI);
mongoose.Promise = global.Promise;
});
}
然后我有另一个 index.js 来处理看起来像这样的依赖注入
module.exports = async url => {
return await require("./unbound").default.bind(
null,
{
mongoose: require("mongoose")
},
url
);
};
我做的与普通依赖注入不同的唯一一件事就是将 URL 作为参数传递。
当我从index.js 调用导出时,我没有得到任何回应。 console.lognot outputing 证实了这一点
关于如何解决这个问题的任何指导?
【问题讨论】:
-
我认为
require('./unbind')没有提供可调用对象,也就是function。您是否尝试过调试以查看它实际为您提供了什么? -
你是对的..我不得不在它后面加上
.default。代码已更新.. 但现在函数调用甚至没有进入unbound.js中的代码 -
在哪里调用新绑定的函数?因为
bind不适合您,您可以尝试在这种情况下使用call。 -
我在 app.js 中使用它在
express服务器开始侦听请求之前建立 mongoDB 连接.. 试过 call()。同样的结果..但我可能犯了一个错误。有sn-ps吗? -
对不起,伙计,真的很难知道到底发生了什么,你应该做一个演示。
标签: javascript dependency-injection