我通过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数据库?
答案 0 :(得分:0)
当您使用Node 0.12安装模块(需要编译)时会抛出该错误,但随后尝试使用较旧的Node版本(如0.10)运行这些模块。
答案 1 :(得分:0)
参考comments from OP's original question:解决方案是原始依赖安装未成功完成。重新安装解决了它。