命令插入连接数据库远程服务器时需要认证| code: 13, codeName: Unauthorized



我可以连接到远程服务器

const express =require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const Promise = require('bluebird');
Promise.promisifyAll(mongoose);
const app = express();
mongoose.connect("mongodb://<Username>:<Password>@<RemoteHost>:<Port>/user")
.then(function(){
console.log("Connected to database");
})
.catch(function(err){
console.log("Connection failed", err);
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));

// Below is the schema and the database model
const userSchema = new mongoose.Schema({
role_id: {type:Number},
name:{ firstName:{type:String},
middleName: {type:String},
lastName: {type:String}
},
contact:{
mobileNo:{type:Number},
mail_id:{ 
username:{type:String},
password:{type:String}
}
},
address: {type:String},
pincode: {type:Number},
city: {type:String},
state: {type:String}

});
const User = mongoose.model("users",userSchema);
// Below is the get,post method
app.get("/getusers",function(req,res){
User.find(function(err,foundUsers){   
if(err){
res.send(err);
} else {
res.send(foundUsers);
}
});
});
app.post("/getusers",function(req,res){
try {
const newUser = new User({
role_id: req.body.role_id ,
name:{
firstName:  req.body.name.firstName,
middleName: req.body.name.middleName,
lastName: req.body.name.lastName
},
contact:{
mobileNo: req.body.contact.mobileNo,
mail_id:{
username: req.body.contact.mail_id.username,
password: req.body.contact.mail_id.password
}
},
address: req.body.address,
pincode: req.body.pincode,
city: req.body.city,
state: req.body.state
});
newUser.save();

} catch (error) {
console.log(error);
}
})

现在从软件或邮递员调用API后,我得到以下错误

/Documents/mProject/node_modules/mongodb/lib/cmap/connection.js:207
callback(new error_1.MongoServerError(document));
^
MongoServerError: command insert requires authentication
at Connection.onMessage (/Documents/mProject/node_modules/mongodb/lib/cmap/connection.js:207:30)
at MessageStream.<anonymous> (/Documents/mProject/node_modules/mongodb/lib/cmap/connection.js:60:60)
at MessageStream.emit (node:events:513:28)
at processIncomingData (/Documents/mProject/node_modules/mongodb/lib/cmap/message_stream.js:132:20)
at MessageStream._write (/Documents/mProject/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
at writeOrBuffer (node:internal/streams/writable:391:12)
at _write (node:internal/streams/writable:332:10)
at MessageStream.Writable.write (node:internal/streams/writable:336:10)
at Socket.ondata (node:internal/streams/readable:754:22)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:315:12)
at readableAddChunk (node:internal/streams/readable:289:9)
at Socket.Readable.push (node:internal/streams/readable:228:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
ok: 0,
code: 13,
codeName: 'Unauthorized',
[Symbol(errorLabels)]: Set(0) {}
}

我已经尝试了mongoDB连接以下组合

  1. mongoose.connect("mongodb://$ {Username}: ${密码}@ ${应}:{港口}/user"美元)
  2. mongoose.connect("mongodb://${应}:{港口}/user"美元)
  3. mongoose.connect("mongodb://${应}/user")
  4. mongoose.connect("mongodb://$ {Username}: ${密码}@ ${应}/user")
  5. mongoose.connect("mongodb + srv://$ {Username}: ${密码}@ ${应}:{港口}/user"美元)
  6. mongoose.connect("mongodb + srv://${应}:{港口}/user"美元)
  7. mongoose.connect("mongodb + srv://${应}/user")
  8. mongoose.connect("mongodb + srv://$ {Username}: ${密码}@ ${应}/user")
<代码>

Unauthorized错误通常表示关联的数据库用户没有足够的权限来执行特定的操作。您可能会发现以下内置角色文档作为参考点很有用。

最新更新