Sai*_*fee 8 mongoose mongodb node.js
我用命令创建了mongodb用户
use admin
db.createUser(
{
user: "superuser",
pwd: "12345678",
roles: [ "root" ]
}
)
Run Code Online (Sandbox Code Playgroud)
然后在我的应用程序中,我试图连接像这样的猫鼬
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');
Run Code Online (Sandbox Code Playgroud)
我通过mongoose插入数据时收到此错误
MongoError: not authorized for insert on twitter-mongo.users
Run Code Online (Sandbox Code Playgroud)
请告诉我我的代码有什么问题
Joe*_*yle 16
您必须在连接字符串中声明authSource参数,以指定包含用户凭据的数据库的名称:
var options = {
user: "superuser",
pass: "12345678",
useMongoClient: true
};
var mongooseConnectionString = 'mongodb://localhost/twitter-mongo?authSource=admin';
Run Code Online (Sandbox Code Playgroud)
请注意,我还将"useMongoClient"设置为true.这使使用MongoClient.connect的身份验证与auth凭证和open()被弃用的错误消息无效.
小智 7
这很好用:
var options = { server: { socketOptions: { keepAlive: 1 } } };
var connectionString = 'mongodb://admin:admin1234@localhost:27017/myDB';
mongoose.connect(connectionString, options);
//Add those events to get more info about mongoose connection:
// Connected handler
mongoose.connection.on('connected', function (err) {
console.log("Connected to DB using chain: " + connectionString);
});
// Error handler
mongoose.connection.on('error', function (err) {
console.log(err);
});
// Reconnect when closed
mongoose.connection.on('disconnected', function () {
self.connectToDatabase();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16225 次 |
| 最近记录: |