由于mongo中的用户名/密码设置,Nodejs mongoClient.connect失败

时间:2016-01-11 10:18:10

标签: node.js mongodb authentication node-mongodb-native

  

当我尝试连接时,当我使用数据库时,失败   的 eventsstore

mongoClient.connect

MongoClient.connect('mongodb://tom:pass@localhost:27017/eventsstore',function(err,db){ if(err){ console.log('NOT CONNECTED') } console.log('CONNECTED') var collection = db.collection('events').insert({mydata:123}, function(err, res){}) })

注意:此外,数据库 eventsstore 由管理员登录

创建
  

当我使用数据库 admin

时,它成功通过/连接

MongoClient.connect('mongodb://tom:pass@localhost:27017/admin',function(err,db){ if(err){ console.log('NOT CONNECTED') } console.log('CONNECTED') var collection = db.collection('events').insert({mydata:123}, function(err, res){}) })

  

这是我的 mongo 用户 tom SUPERUSER权限在mongo中的显示方式

db.getUser('tom')

[ { "role" : "readWrite", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "dbOwner", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "clusterAdmin", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" } ]

1 个答案:

答案 0 :(得分:3)

您需要提供身份验证db

var opts = {db:{authSource:'admin'}}

mongo.connect('mongodb:// tom:pass @ localhost:27017 / admin',opts,function(err,db){

}