【发布时间】:2017-05-31 15:41:51
【问题描述】:
我无法从 socket.io 连接到我的 mongodb。 当我运行我的 server.js 时,它说它已与 mongodb 连接,并且已连接到套接字,但随后显示错误
MongoError: not authorized on db to execute command find.
我以管理员用户身份登录到 mongo admin 数据库,然后转到“聊天”数据库,并在数据库中创建了一个新用户,角色为“readWrite”,如下所示。
use chat
然后:
db.createUser({user: "testuser", pwd: "testuser", roles: [{role: "readWrite", db: "chat" }]})
Successfully added user: {
"user" : "testuser",
"roles" : [
{
"role" : "readWrite",
"db" : "chat"
}
]
}
用户被创建。
当我用db.auth("testuser","testuser") 测试它时,我得到一个 1。
然后我退出并转到我的 bin 文件夹并在那里写:mongo.exe -u testuser -p testuser chat;
然后它连接到mongodb://127.0.0.1:127017/chat
然后我打开一个新提示并转到我的文件夹,其中有与数据库连接的 server.js 并运行它,然后它首先说服务器正在运行并且它与 mongodb 连接。
当我转到我的聊天页面并加载它时,它会说:MongoError not authorized...
我像这样连接我的 server.js 文件
var port = process.env.PORT || 3000;
server.listen(port);
console.log('Server running *:'+port);
var io = require('socket.io').listen(server);
var mongoose = require('mongoose');
//mongoose.connect('mongodb://127.0.0.1:27017/chat', function(err){
mongoose.connect('mongodb://localhost/chat', function(err){
我不知道我错过了什么,我已经关注了 mongodb 上的文档并查看了整个网络,但不确定我哪里出错了。
任何意见都非常感谢。
当我加载聊天页面并查看控制台时,我收到此错误。
https://manmade.se:3000/socket.io/?EIO=3&transport=polling&t=Lceu0Ot&sid=wbFhDl7yylt4_4a1AAAA net::ERR_CONNECTION_RESET
index_webb.html:1 WebSocket connection to 'wss://manmade.se:3000/socket.io/?EIO=3&transport=websocket&sid=wbFhDl7yylt4_4a1AAAA' failed: WebSocket is closed before the connection is established.
【问题讨论】:
-
您确定连接到正确的端口吗?
-
是的,我之前可以正常工作,但后来我重新安装了 mongodb,现在我无法正常工作。