未能加载c ++ bson

我是新来的整个Nodejs,MongoDB,mongoose的世界。 我只是试图按照一些教程开始,我一直得到这个“无法加载c + + bson扩展,使用纯JS版本”错误,如果我尝试启动任何脚本与引用mongoose。

我已经尝试了一切,我可以谷歌修复它,没有任何工作,包括:

  • 重新安装构build要领
  • 重新安装mongoDB
  • 将nodejs降级到0.10.22
  • 删除node_modules目录
  • 清理npmcaching

我不知所措 有人可以帮我吗? 我只想回到学习!

我在Ubuntu 13服务器上运行nodejs和MongoDB。 这是我的简单脚本。

var mongoose = require("mongoose"); mongoose.connect('mongodb://localhost/test'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function () { var UsersSchema = mongoose.Schema({ name: String }); var User = mongoose.model('User', UsersSchema); var user = new User({ name: "SomeName" }) user.save(); }); 

谢谢!

如果您使用的是Ubuntu 14.04,可能与此问题有关:

https://github.com/TooTallNate/node-gyp/issues/426

有两种方法可以解决这个问题:

将gyp升级到最新版本我在svn源代码中find了–no-parallel选项: https : //code.google.com/p/gyp/source/browse/trunk/pylib/gyp/init.py

破解node_gyp如果你不想升级你的gyp,你可以只注释/ usr / local / lib / node_modules / npm / node_modules / node-gyp / lib / configure.js的第316行

  argv.push('-Dvisibility=default') argv.push('-Dnode_root_dir=' + nodeDir) argv.push('-Dmodule_root_dir=' + process.cwd()) argv.push('--depth=.') //argv.push('--no-parallel') 

我在初始设置中也面临类似的问题,通过重新安装build-essential包来修复它

 sudo apt-get install build-essential 

然后重新安装mongodb本地驱动程序也

 npm install mongodb 

当前版本的节点是v0.10.26。 尝试升级您的节点版本。