【问题标题】:error in npm install inspite of changing the file Bson尽管更改了文件 Bson,但 npm install 中的错误
【发布时间】:2015-05-28 02:32:50
【问题描述】:

在 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 和尚

【问题讨论】:

  • 代码在第一个错误时是否仍然运行?我也收到了这个错误,但它并没有影响代码。
  • 确保它不会影响您的其余代码,但这确实令人不快。就我而言,在我运行 npm update 之前一切正常

标签: node.js mongodb bson monk


【解决方案1】:

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

按照以下步骤操作:

  • 卸载 Node.js
  • 卸载所有模块,包括 Python
  • 现在安装上述所有已卸载应用程序和平台的 32 位版本。
  • 遵循所有必要的步骤。
  • 现在安装您要使用的模块。

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

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

【讨论】:

  • 这是唯一对我有帮助的东西。我花了大约 4 小时来解决这个问题。最后,问题出在节点(0.12.3 x64)上,它没有将 bson.node 识别为模块。当我用 x32 版本重新安装所有这些东西(节点、python)时,问题就消失了。
  • 我有这个问题两天了。经过大量研究,我在stackoverflow上找到了这个解决方案。但没有详细解释。所以我选择发布这个答案。祝你好运。 (y)
  • 我怀疑最新版本的节点因为一切运行良好,直到我在我的 x64 节点中运行 npm update
  • @MarcelDjaman 您是否使用 mongoDB、socket.io 等 x64 节点的模块,它们工作正常吗??
  • 一切正常,期待一些讨厌的警告消息,例如 js-bon failed to load c++ bson extension...
【解决方案2】:

我使用的是 Windows 8.1,但我所做的是首先安装 python 2.7.9 和 Visual Studio 社区版。两者都是编译 bson 所必需的。然后我安装了:“npm install -g node-gyp”,之后我刚刚从我的项目中删除了 node_modules 并再次执行了“npm install”。解决了。当我再次进行安装时,我可以在控制台上看到消息说 bson 正在编译。

【讨论】:

    【解决方案3】:

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

    npm install mongodb --save
    

    其中一个依赖项是node-gyp,它是编译 bson 所必需的。重要的是,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 ...)。然后我卸载了mongodb和mongodb:

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

    安装了Python 2.7和Microsoft Visual Studio,然后又安装了mongodb和monkey:

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

    这解决了它。

    【讨论】:

    • 我在mongoose目录的同一路径中找到bson,可以吗?
    • 还是一样的错误!我试图运行 node-gyp rebuild 但我有这个错误:gyp: binding.gyp not found (cwd: C:\Node\test) while trying to load binding.gyp gyp ERR! configure error gyp ERR! stack Error: gyp` failed with exit code: 1 `
    【解决方案4】:

    当我更改节点 10.34 和 nom 1.4.28 的版本时问题已解决

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 2020-01-20
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2021-02-08
      相关资源
      最近更新 更多