node.js - Node.js 中 d3 和 mongo 之间的冲突

标签 node.js mongodb d3.js

当在需要 mongo (connect-mongo) 的模块之前需要 d3.js 时,我收到以下错误:

TypeError: Cannot read property 'BSON' of undefined
    at .../node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/index.js:48:44

如果我在 mongo 模块之后需要 d3.js,它可以正常工作......

我不是第一个遇到这个问题的人,但我不知道有什么冲突 How to use D3 in Node.js properly?

最佳答案

发生这种情况是因为您使用的 BSON 版本会检查 window 全局是否存在,以查看它是否在 Node.JS 中运行。这是一个坏主意,例如D3.js 通过 JSDOM 创建这样一个全局变量,从而使检查无效。

但是,这个问题似乎已在 recent commit 中得到修复。 ,即在 BSON v0.1.5 中。

在撰写本文时,npmjs.org 上的 mongodb 版本为 v1.1.11 ,但 BSON 依赖项已在 v1.2.0 中更新,该版本似乎即将发布(请参阅 GitHub)。

关于node.js - Node.js 中 d3 和 mongo 之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368324/

相关文章:

node.js - Npm 从 repo 安装未运行 `prepare`

mongodb - 在 Mongoose 中进行条件查找

javascript - 如何在nestjs中转换api响应?

javascript - 蒙戈 : Update value of string array element using the element itself

javascript - 我如何告诉 D3 使树状图垂直(自上而下)而不是从左到右?

javascript - 如何限制 d3 力有向图中最初的节点数量

json - 如何强制 TypeScript 转译原型(prototype)方法?

node.js - 在管道传输之前捕获 super 代理请求错误

d3.js - D3树: lines instead of diagonal projection

node.js - 混淆 SSL 与 Node 和使用 cURL