【问题标题】:Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } js-bson: Failed to load c++ bson extension, using pure JS version找不到模块'../build/Release/bson'] 代码:'MODULE_NOT_FOUND'} js-bson:使用纯 JS 版本加载 c++ bson 扩展失败
【发布时间】:2015-04-23 10:24:11
【问题描述】:

我收到以下错误:

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

这是我的版本详细信息:

  • 操作系统:Windows 7

  • MongoDB:2.6.5

  • 节点:0.12.0

在我在这里发布问题之前,我已经尝试过这些方法。

  1. 我去了\node-modules\mongoose\node-modules\mongodb\node-modules\bson 文件夹并在 binding-gyp 文件中进行了以下更改 来自'include_dirs': [ '<!(node -e "require(\'nan\')")' ]'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]

  2. 运行此命令npm install -g node-gyp

  3. 我已在package.json 内将猫鼬版本更新为 3.8.21

没有任何作用。请推荐

【问题讨论】:

  • 我尝试了您建议的以下选项,但无济于事。我得到以下错误{ [错误:找不到模块'../build/Release/bson'] 代码:'MODULE_NOT_FOUND'} js-bson:使用纯 JS 版本 c:\raj\project 加载 c++ bson 扩展失败\meandemo\node_modules\express\lib\router\route.js:170 throw new Error(msg); ^ 错误:Route.get() 需要回调函数,但在 Route. 获得了 [object Undefined]
  • 请看这个解决方案,希望它有效!由于其他几个模块也需要 C++ BSON 扩展。请注意,此解决方案特定于 Microsoft-OS Win-7 stackoverflow.com/a/29714359/4154706
  • 也检查这个问题的答案:Failed to load c++ bson extension

标签: javascript angularjs windows node.js mongodb


【解决方案1】:

我正在使用 OS Windows 8.1 并且遇到了同样的问题。问题的根源在于 Python 的版本。我发现起源问题查看文件 ...\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos\builderror.log。

我安装了正确版本的 Python(64 位为 2.7.9),它解决了我的问题。

注意:安装的python版本必须等于或大于2.7.5且小于3.0.0

【讨论】:

    【解决方案2】:

    如果您使用的是 Windows 8.1,您可能需要确保使用正确的 Visual Studio 编译器安装您的 npm 模块。

    我已经安装了 Visual Studio 2012,这个命令对我有用。 (删除 node_modules 目录后)

    npm install --msvs_version=2012

    出于某种原因,node-gyp 正在尝试使用错误版本的 Visual Studio 编译器。我还注意到,在安装 mongodb 和 mongoose 模块时,“npm install”命令会打印出关于 not node-gyp 依赖项的警告。

    使用正确的 msvs_version 后,运行我的 nodejs 应用程序时,npm install 警告和控制台警告都消失了。

    您可能还需要确保安装了正确的 Python 2.7.X 版本,而不是 Python 3.0.X。

    您还需要确保 python 在您的环境路径中。

    【讨论】:

    • 这适用于我在 Windows 8.1 和 Visual Studio Community Edition 2013 上使用 npm install --msvs_version=2012
    【解决方案3】:

    首先browser_build folder复制bson.js代码

    第二创建新文件bson.js并粘贴代码

    第三将新文件保存在index.js附近。

    【讨论】:

      【解决方案4】:

      试过 npm install mongoose --msvs_version=2012,如果你安装了多个 Visual,它对我有用

      【讨论】:

        【解决方案5】:

        不幸的是,以上所有答案都只对了一半。花了很长时间才弄清楚。

        Mongoose bson install via npm 抛出警告并导致错误...

        npm install -g node-gyp
        
        git clone https://github.com/mongodb/js-bson.git
        cd js-bson
        npm install
        node-gyp rebuild
        

        这就像魔术一样!

        【讨论】:

          【解决方案6】:

          在我的例子中,mongoose (npm install mongoose) 附带的位在其node_modules 文件夹中具有mongodb 包的工作版本。

          以下步骤为我节省了解决问题的工作:

          • npm install mongoose
          • node_modules\mongoose\node_modules\mongodb 复制到我的根node_modules 文件夹(覆盖npm install mongodb 附带的任何版本)
          • 忽略Failed to load c++ bson extension... 错误(或将代码更改为对该问题保持沉默)

          【讨论】:

            猜你喜欢
            • 2015-03-06
            • 2015-08-27
            • 1970-01-01
            • 2014-06-05
            • 2015-01-24
            • 2015-09-23
            • 2015-03-24
            • 2016-10-20
            • 2014-04-05
            相关资源
            最近更新 更多