【发布时间】:2017-12-31 06:59:22
【问题描述】:
供参考,教程如下:https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose
我一直在关注 mdn 上的 nodejs/express 教程,但由于我不断收到身份验证错误,因此无法完成此步骤(连接到 MongoDB)。
经过大约一个小时的研究,我意识到问题可能是由于 shell 版本不兼容;我的外壳是 3.6,而他们的外壳是 3.4。
我该如何解决这个问题? 我应该退出并使用不同的数据库主机(似乎很复杂)吗?如果有,你推荐哪个?
PS:我知道导致此错误的其他可能原因可能是 a)包含特殊字符的密码,或 b)在以下情况下使用我的用户名 而不是 db 用户名连接。 但是,我已经采取了必要的措施来确保情况并非如此。
【问题讨论】:
-
如果我是你,我会使用本地安装的 MongoDB。设置它并不难,您将通过自己而不是使用外部服务来了解更多信息。
-
向我们展示您用于连接的代码
-
var mongoose = require('mongoose');var mongoDB = 'insert_your_database_url_here'; mongoose.connect(mongoDB, { useMongoClient: true });mongoose.Promise = global.Promise;var db = mongoose.connection;db.on('error', console.error.bind(console, 'MongoDB connection error:')) -
mongo 驱动程序不使用 shell 进行连接,因此不兼容的 shell 版本应该不是问题。显示您正在使用的代码和错误会很有帮助。我为 mLab 工作,我建议发送电子邮件至 support@mlab.com,因为我们可能能够就身份验证问题提供更深入的支持。我们总是很乐意提供帮助。
-
感谢所有帮助。我最终接受了 Ganev 的建议并使用了本地安装
标签: javascript node.js mongodb express mlab