我在node.js中与Gridfs一起使用mongodb,并在这条线上遇到了TypeError: Promise is not a constructor。我已经追溯了一点,我可以看到,在这条线上,topology.s.promiseLibrary是未定义的。我不知道我该怎么做才能导致这件事。我的理解是,mongodb只会使用内置的ES6承诺,即使我没有连接蓝鸟或类似的东西。
奇怪的是,定义了topology.s.options.promiseLibrary。我不确定我是否做错了什么来配置它。我没有更改我的代码(我已经恢复到以前工作过的代码)。我的节点版本是v9.2.0。我的Mongodb是3.10.0。我的网格流是1.1.1。
如果我注释掉这条线,那么一切都很好。
const Promise = topology.s.promiseLibrary;这是个虫子吗?可能是什么原因?看起来可能是外部原因,但我不知道该在哪里继续我的搜索。topology.s.promiseLibrary应该怎么做呢?为什么它没有定义?
发布于 2018-06-12 20:19:51
我不再为我的承诺库使用蓝鸟,而是使用内置的ES6承诺库,现在例外情况已经消失了。我不知道为什么不能用蓝知更鸟。它已经工作了很久,然后突然这周:不。
变化
mongoose.Promise = require('bluebird');至
mongoose.Promise = Promise;发布于 2018-06-22 14:17:41
不知何故,我的mongodb实际上被设置为3.1.0beta4,这似乎导致了这个问题。
我把mongodb固定在2.2.34,一切都很好。
https://stackoverflow.com/questions/50818284
复制相似问题