Javascript 找不到模块'/构建/发布/bson';]代码:';未找到模块';}js bson:未能加载c++;bson扩展,使用纯JS版本

Javascript 找不到模块'/构建/发布/bson';]代码:';未找到模块';}js bson:未能加载c++;bson扩展,使用纯JS版本,javascript,angularjs,windows,node.js,mongodb,Javascript,Angularjs,Windows,Node.js,Mongodb,我得到以下错误: { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } js-bson: Failed to load c++ bson extension, using pure JS version 以下是我的版本详细信息: 操作系统:Windows7 MongoDB:2.6.5 节点:0.12.0 在我将问题发布到这里之前,我已经尝试过这些方法 我转到\node modu

我得到以下错误:

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } 
  js-bson: Failed to load c++ bson extension, using pure JS version
以下是我的版本详细信息:

  • 操作系统:Windows7

  • MongoDB:2.6.5

  • 节点:0.12.0

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

  • 我转到
    \node modules\mongoose\node modules\mongodb\node modules\bson
    文件夹,在绑定gyp文件中做了以下更改 从
    'include_dirs':['package.json


  • 没有任何效果。请建议在npm模块mongodb中查找:

    ..\node\u modules\mongodb\node\u modules\bson\ext\index.js

    在catch块中将路径更改为js版本:

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

    或将文件复制到:

    ..\node\u modules\bson\build\Release\bson

    发件人:

    ..\node\u modules\bson\browser\u build\bson


    在我的例子中,mongoose(
    npm install mongoose
    )附带的BIT在其
    节点模块
    文件夹中有一个
    mongodb
    包的工作版本

    以下步骤使我省去了故障排除工作:

    • npm安装猫鼬
    • node\u modules\mongoose\node\u modules\mongodb
      复制到我的根
      node\u modules
      文件夹(覆盖
      npm install mongodb
      附带的任何版本)
    • 忽略<代码>加载C++ +BSON扩展…<代码>错误(或更改代码以在问题上保持沉默)< /LI>
    我使用的是操作系统Windows 8.1,我遇到了同样的问题。问题的根源是Python版本。我发现了源问题,请查看文件…\node\u modules\mongodb\node\u modules\mongodb core\node\u modules\kerberos\builderror.log

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


    注意:安装的python版本必须等于或大于2.7.5,小于3.0.0。不幸的是,以上所有答案都只对了一半。解决这个问题花了很长时间

    Mongoose bson安装通过npm抛出警告并导致错误

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

    这很神奇!!

    如果您使用的是windows 8.1,您可能需要确保使用正确的visual studio编译器安装npm模块

    我已安装Visual Studio 2012,此命令适用于我。 (删除节点_模块目录后)

    npm安装——msvs\U版本=2012

    出于某种原因,node gyp试图使用不正确版本的Visual Studio编译器。我还注意到,“npm install”命令在安装mongodb和mongoose模块时打印出了一条关于not node gyp依赖关系的警告

    在使用正确的msvs_版本后,npm安装警告以及运行my nodejs应用程序时的控制台警告消失

    您可能还希望确保安装了正确的Python2.7.X版本,而不是Python3.0.X版本


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

    尝试过npm安装mongoose--msvs_version=2012,如果您安装了多个Visual,它首先对我有效。

    复制
    bson.js
    来自
    浏览器构建文件夹的代码

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


    third将新文件保存在
    index.js
    附近,我尝试了
    bson=require(“../browser\u build/bson”);
    但最后遇到了另一个错误

    无法将未定义的属性“BSON\u BINARY\u SUBTYPE\u DEFAULT”设置为


    最后,我通过
    npm update
    简单地解决了这个问题,这将修复mongoose中的bson模块。

    这是在Windows 7(x64)上唯一对我有帮助的东西:

    使用x32版本重新安装node和python。
    我花了很多时间处理这个错误(加载C++ BSON扩展失败),最后,当我安装了模块<代码>节点GYP(用于构建本机插件),甚至安装了VisualStudio - NoDEJS的Windows SDK时,没有识别组装的模块BSON.No.AS模块。 再说一遍,这个错误是什么意思


    事实上,这甚至不是错误。你仍然可以使用mongoose。但是在这种情况下,你没有快速实现bson模块的本机实现,而是得到了js实现,这更慢。我看到了很多提示,比如:“编辑节点模块内部的路径…”-这完全没有用,因为它没有解决问题,只是关闭了错误消息。

    问题是,当您通过npm安装mongoose时,它假设您的windows上安装了python,并尝试构建所需的库。由于您没有python,它会跳过构建阶段并发出警告。但当您启动应用程序时n、 必需的模块不存在,因此您会遇到此错误

    为了做正确的事情,首先从以下位置在您的计算机上安装python(版本2.7):或者如果您已经安装了chockolatey,只需键入
    choco install python2

    然后确保设置了python变量。您可以在命令提示符下设置它,如下所示:

    SET python=D:\Python27\python.exe
    
    (当然,您应该根据python的位置更改路径) 然后安装节点gyp:

    npm install -g node-gyp
    
    现在,您可以重新安装mongoose或导致问题的任何模块:

    npm install mongoose
    

    这次您将看到一些黄线而不是红线,但错误将消失。

    我通过安装mogoose版本
    3.8.23

    npm install mongoose@3.8.23
    

    因此,我也遇到了同样的问题,并且指定的mongoDB URL不存在。因此,要解决此问题,您需要转到“.\server\config\environment”文件夹,并在“development.js”文件中编辑指向mongoDB的链接

    例如:

    // Development specific configuration
    // ==================================
    module.exports = {
      // MongoDB connection options
      mongo: {
        uri: 'mongodb://localhost/test2-dev'
      },
    
      seedDB: true
    };
    
    所以,更改这个“uri:”mongodb://localhost/test2-dev“”指向mongoDB数据库的真实路径


    如果我的帖子能帮助某人,我会很高兴…

    试试这个
    npm安装bson
    npm更新
    在npm模块中查找
    // Development specific configuration
    // ==================================
    module.exports = {
      // MongoDB connection options
      mongo: {
        uri: 'mongodb://localhost/test2-dev'
      },
    
      seedDB: true
    };
    
    bson = require('../build/Release/bson');
    
    try {
            // Load the precompiled win32 binary
            if(process.platform == "win32" && process.arch == "x64") {
              bson = require('./win32/x64/bson');  
            } else if(process.platform == "win32" && process.arch == "ia32") {
              bson = require('./win32/ia32/bson');  
            } else {
             bson = require('../browser_build/bson');  
            }   
        } catch(err) {
            // Attempt to load the release bson version
            try {
                bson = require('../browser_build/bson');
            } catch (err) {
                console.dir(err)
                console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
                bson = require('../lib/bson/bson');
            }
        }
    
    Failed to load c++ bson extension, using pure JS version
    
    npm un node-gyp -g;npm i node-gyp -g
    
    find node_modules/ -type 'f' -exec grep -H 'Release/bson' {} \;
    
     rm -rf node_modules
     npm cache clear
     npm i
    
    "../build/Release/bson"
    
    bson = require('../build/Release/bson');
    
    bson = require('bson');
    
    "mongoose": "~4.4"
    
    find . -type f -name package.json | xargs grep mongodb
    ...
    ./sails-mongo/package.json:    "mongodb": "1.4.26",
    ...
    
    "mongodb": "2.1.7",
    
    require('../browser_build/bson')
    
    try {
        // Load the precompiled win32 binary
        if(process.platform == "win32" && process.arch == "x64") {
          bson = require('./win32/x64/bson');  
        } else if(process.platform == "win32" && process.arch == "ia32") {
          bson = require('./win32/ia32/bson');  
        } else {
          bson = require('../build/Release/bson');  
        }   
    } catch(err) {
        // Attempt to load the release bson version
        try {
            bson = require('../browser_build/bson');
        } catch (err) {
            console.dir(err)
            console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
            bson = require('../lib/bson/bson');
        }
    }
    
    $rm -rf node_modules
    $npm --save install bson
    $npm --save install mongoose
    $npm install
    
    npm install mongoose@4.4
    
    root@keystonejs:~# npm install -g npm-check-updates
    
    debian@keystonejs:~/myproject/manalcjim$ npm-check-updates -u
    
    debian@keystonejs:~/myproject/manalcjim$ npm install
    
    debian@keystonejs:~/myproject/manalcjim$ npm install jade --save