[英]Cannot fetch from or insert data to mongodb using mongoose
我编写了一个节点Web应用程序,并在本地系统上创建了mongoDb数据库。 我正在使用以下代码从节点js连接到本地mongodb
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/db_name'); //local
而且在我的本地计算机上一切正常。 因此,我继续创建了一个mlab帐户并创建了一个数据库。 但是,当我尝试通过更改连接字符串来运行代码时,我相信仍然可以建立连接。 但是,查找和保存请求不会调用回调,甚至不会显示任何错误。 所有请求都超时。
var mongoose = require('mongoose');
mongoose.connect("mongodb://user:pass@ds036789.mlab.com:36789/db_name"); //mlab
我注意到的另一件事是我无法ping ds036789.mlab.com。 但是当我尝试nc命令时,TCP连接成功
nc -w 3 -v ds036789.mlab.com 36789
我什至尝试部署到蔚蓝。 这也不起作用。 任何帮助深表感谢。 谢谢。
编辑:无法ping是由于我使用azure托管。 可以预料的。 而且我还发现尝试连接时出现此错误:
connection error: { [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
凭据是正确的。
根据错误消息,看来您正在使用无效的身份验证详细信息
如果您没有为individual database
创建用户名和密码(例如db_name
,则很可能发生这种情况。
检查mLabs帐户,并为db_name
数据库创建用户名和密码,并更新您的连接字符串。
我发现了问题,这不是凭据问题。 猫鼬版本存在问题。 我使用的猫鼬版本不支持身份验证。 我必须删除软件包并重新安装最新版本。 与
node install mongoose@latest
希望它可以帮助某人。 并感谢您的回答:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.