c++ bson扩展加载失败,使用mongodb访问mongodb时使用纯js版本

Posted

技术标签:

【中文标题】c++ bson扩展加载失败,使用mongodb访问mongodb时使用纯js版本【英文标题】:Failed to load c++ bson extension, using pure JS version when using monk to access Mongodb 【发布时间】:2015-01-24 06:18:25 【问题描述】:

当我想使用monk作为中间件访问mongodb时,提示

使用纯JS版本加载c++ bson扩展失败

我正在运行的 evn 如下:

    OS X 优胜美地 节点 v0.10.32 npm 1.4.28 MongoDB 2.6.5 和尚 0.9.1 有谁知道如何解决这个问题?

【问题讨论】:

是不是有些东西真的不起作用,还是你只是关心这个消息? 可能是因为安装时 make 工具不可用。尝试查看http://***.com/questions/21656420/failed-to-load-c-bson-extension中的解决方案 【参考方案1】:

答案在Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' js-bson: Failed to load c++ bson extension, using pure JS version

去和尚 index.js 文件 (yourProjectDirectory/node_modules/monk/node_modules/mongodb/node_modules/bson/ext/index.js)

应该是这样的

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('../build/Release/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');
    

将catch块改为

try 
...
 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');
    

希望对你有帮助

大卫

【讨论】:

以上是关于c++ bson扩展加载失败,使用mongodb访问mongodb时使用纯js版本的主要内容,如果未能解决你的问题,请参考以下文章

使用 Mongodb 和 Node.js 无法加载 c++ bson 扩展错误

运行 mongodb-backed node app 时无法加载 C++ bson 扩展,使用纯 JS 版本错误

js-bson:无法加载 c++ bson 扩展,在 Windows 的 mongoose 上使用纯 JS 版本

无法加载 c++ bson 扩展

无法加载 c++ bson 扩展

Openshift 无法加载 c++ bson 扩展/找不到模块('swig')