本地Node.js脚本未连接到mongoDB数据库

时间:2015-04-10 18:45:03

标签: node.js mongodb express mongoose mlab

我通过Heroku设置MongoLab MongoDB数据库,并通过发出以下命令在shell中连接它:

mongo ds061701.mongolab.com:61701/heroku_app35721468 -u <dbuser> -p <dbpassword>

我正在使用Node.js和Express,并在script.js文件中编写以下代码,该文件与包含mongoose的node_modules文件夹位于同一目录中。

var mongoose = require('mongoose');
mongoose.connect('mongodb://<dbuser>:<dbpassword>@ds061701.mongolab.com:61701/heroku_app35721468');
var db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error: '));

db.once('open', function(){
    console.log('db connected');
});

在终端导航到此脚本的目录并键入node script.js时,收到以下错误消息:

dyld: lazy symbol binding failed: Symbol not found: _node_module_register
Referenced from: /Users/Jack/Documents/node-express-101/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/build/Release/bson.node
Expected in: dynamic lookup

dyld: Symbol not found: _node_module_register
Referenced from: /Users/Jack/Documents/node-express-101/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/build/Release/bson.node
Expected in: dynamic lookup

Trace/BPT trap: 5

我在这里做错了什么以及如何使用mongoose连接到MongoLab上托管的MongoDB数据库?

2 个答案:

答案 0 :(得分:0)

当您使用Node 0.12安装模块(需要编译)时会抛出该错误,但随后尝试使用较旧的Node版本(如0.10)运行这些模块。

答案 1 :(得分:0)

参考comments from OP's original question:解决方案是原始依赖安装未成功完成。重新安装解决了它。