首页 > 解决方案 > mongodb topology.s.promiseLibrary 未定义

问题描述

我在带有 Gridfs 的 node.js 中使用 mongodb,我TypeError: Promise is not a constructor这条线上遇到了。我已经追溯了一点,我可以看到在这条线上,topology.s.promiseLibrary是未定义的。我不知道我能做些什么来造成这种情况。我的理解是即使我没有连接 bluebird 或类似的东西,mongodb 也只会使用内置的 ES6 Promise。

奇怪的是,topology.s.options.promiseLibrary 定义了。我不确定我是否做错了配置它。我没有更改我的代码(我已经恢复到以前工作的代码)。我的节点版本是 v9.2.0。我的 Mongodb 是 3.10.0。我的 gridfs-stream 是 1.1.1。

如果我注释掉这一行,那么一切正常。

const Promise = topology.s.promiseLibrary;

这是一个错误吗?可能是什么原因?似乎可能有外部原因,但我不确定在哪里继续搜索。topology.s.promiseLibrary应该如何设置?为什么没有定义?

标签: node.jsmongodbpromisebluebirdgridfs-stream

解决方案


不知何故,我的 mongodb 实际上设置为 3.1.0-beta4 ,这似乎导致了这个问题。

我将 mongodb 固定到 2.2.34,一切都很好。


推荐阅读