我无法从socket.io连接到我的mongodb。当我运行server.js时,它显示已连接到mongodb并且已连接到套接字,但随后出现错误。
MongoError: not authorized on db to execute command find.
我已经登录Mongo的admin数据库,身份为管理员用户,然后进入“chat”数据库,在该数据库中创建了一个新用户,并赋予“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.