2

在需要 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,它可以正常工作......

我不是第一个遇到这个问题的人,但我不知道有什么冲突 的如何在 Node.js 中正确使用 D3?

4

1 回答 1

2

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

然而,看起来这个问题已经在最近的提交中得到修复,即在 BSON v0.1.5 中。

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

于 2012-11-13T20:59:23.970 回答