在需要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?
答案 0 :(得分:2)
这种情况正在发生,因为您使用的BSON版本会检查是否存在window
全局,以查看它是否在Node.JS中运行。这是一个坏主意,例如D3.js通过JSDOM创建了这样一个全局,从而使检查无效。
但是,看起来此问题已在recent commit中修复,即在BSON v0.1.5中修复。
在撰写本文时,npmjs.org上的mongodb版本为v1.1.11,但是在v1.2.0中更新了BSON依赖关系,该版本似乎即将发布(参见GitHub)