繁体   English   中英

无法使用mongoose从mongodb获取数据或将数据插入mongodb

[英]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数据库创建用户名和密码,并更新您的连接字符串。

根据错误信息,如@Astro所说,这似乎是由于使用了为数据库创建的无效auth user/password引起的。

您是否创建了用于连接数据库的新用户,而不是mlab的帐户用户? 如下图所示。

图1.连接需要数据库用户 在此处输入图片说明

图2.数据库的用户列表 在此处输入图片说明

希望能帮助到你。

我发现了问题,这不是凭据问题。 猫鼬版本存在问题。 我使用的猫鼬版本不支持身份验证。 我必须删除软件包并重新安装最新版本。

node install mongoose@latest

希望它可以帮助某人。 并感谢您的回答:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM