我已经使用命令创建了 mongodb 用户
use admin
db.createUser(
{
user: "superuser",
pwd: "12345678",
roles: [ "root" ]
}
)
然后在我的应用程序中我尝试像这样连接猫鼬
var options = {
user: "superuser",
pass: "12345678"
};
var mongooseConnectionString = 'mongodb://localhost/twitter-mongo';
mongoose.connect(mongooseConnectionString,options);
mongoose.model('User', UserSchema);
var User = mongoose.model('User');
通过猫鼬插入数据时出现此错误
MongoError: not authorized for insert on twitter-mongo.users
请告诉我我的代码有什么问题
您必须在连接字符串中声明 authSource 参数,以便指定包含用户凭据的数据库的名称:
var options = {
user: "superuser",
pass: "12345678"
};
var mongooseConnectionString = 'mongodb://localhost/twitter-mongo?authSource=admin';
注意:对于 Mongoose 4.x 的用户,您可能还想包括useMongoClient: true
在你的options目的。这让请使用带有身份验证凭据的 MongoClient.connect 进行身份验证 and open() 已弃用错误消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)