【发布时间】:2015-06-16 14:18:29
【问题描述】:
我通过 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 数据库?
【问题讨论】:
-
猫鼬安装正确了吗?假设您使用了
npm i mongoose --save,它是否安装没有错误? -
我对此非常陌生。按照 mongoosejs 网站上的说明,我导航到包含该文件的目录并使用
npm install mongoose。 -
我刚刚使用
npm i mongoose --save再次安装了它,它似乎正在工作。谢谢!为什么我应该以这种方式安装猫鼬,为什么在使用npm install mongoose安装猫鼬时脚本不起作用? -
它们都是同一个命令。
npm i是npm install的缩写。如果没有看到原始安装输出,我们无法知道为什么它没有正确安装。 -
安装依赖项时是否应该始终包含
--save?
标签: node.js mongodb express mongoose mlab