尽管更改了Bson文件,但在npm安装中出错

时间:2015-03-24 16:49:29

标签: node.js mongodb bson monk

在Windows 7上使用mongodb3.0,节点0.12.0,npm 2.5.1整数,我正在尝试读取数据到我的数据库中,但我在npm intsall中有这个错误!

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version

我试图替换

bson = require('../build/Release/bson');

进入

bson = require('../browser_build/bson');

但我有这样的错误:

 exports.BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0 TypeError: Cannot set property       'BSON_BINARY_SUBTYPE_DEFAULT' of undefined  

我正在使用和尚,anfd我已经运行了npm mongodb,npm monk

4 个答案:

答案 0 :(得分:6)

问题: Mongo-DB,Socket.io等模块需要node-gyp来编译Kim也讨论过的C / C ++代码。 MSVC ++仅适用于32位操作系统, NOW 这是真正的问题,因为如果您使用64位版本安装node.js和Python 2.7.3等其他要求,然后你就像我一样面对问题。

请按照以下步骤操作:

  • 卸载Node.js
  • 卸载所有模块,包括Python
  • 现在安装以上所有已卸载的应用程序和平台的32位版本。
  • 按照所有必要步骤进行操作。
  • 现在安装您要使用的模块。

安装时可能会发现一些错误,但不要惊慌失措。尝试运行您的应用程序,它将正常工作。

注意:此解决方案特定于平台,即适用于MS Windows。

答案 1 :(得分:1)

我在Windows 8.1上,但我做的是首先安装python 2.7.9以及visual studio社区版。两者都需要编译bson。然后我安装了:" npm install -g node-gyp",之后我刚刚从我的项目中删除了node_modules并做了#34; npm install"再次。解决了。当我再次安装时,我可以在控制台上看到bson正在编译的消息。

答案 2 :(得分:0)

MongoDB依赖于一些库。在某些时候你会做到:

npm install mongodb --save

其中一个依赖项是编译bson所需的node-gyp。重要的是,node-gyp需要安装Python 2.7和Microsoft Visual Studio(参见installation section of node-gyp)。如果你没有Python 2.7和Visual Studio,那么node-gyp将无法构建,这意味着它无法编译bson(导致初始错误)。

导航至: node_modules \ mongodb \ node_modules \ mongodb-core \ node_modules \ bson

您应该找到 builderror.log 文件,其中包含有关node-gyp无法构建的原因的详细信息。很可能这是因为没有安装Python 2.7或Visual Studio。

以下是解决问题的方法:

我遇到了与bson模块未找到错误完全相同的问题。我也改变了require行,结果出现了同样的错误(exports.BSON ...)。然后我卸载了monk和mongodb:

npm uninstall mongodb --save
npm uninstall monk --save

安装了Python 2.7和Microsoft Visual Studio,然后再次安装了mongodb和monk:

npm install mongodb --save
npm install monk --save

这解决了它。

答案 3 :(得分:0)

当我更改节点10.34和npm 1.4.28

的版本时,问题得以解决