You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
varMongoClient=require('mongodb').MongoClientMongoClient.connect('mongodb://localhost:27017/database',function(err,db){// db为当前连接上的数据库// Add the new user to the databasedb.addUser('username','password',function(err,result){if(result==1){// 添加成功varcol=db.get("testcollection");col.insert({"test":"name"})// 这个时候你会发现数据表testcollection中有了一条数据}});})
varMongoClient=require('mongodb').MongoClient;MongoClient.connect('mongodb://localhost:27017/database',function(err,db){// Authenticate using the newly added usernamedb.authenticate('username','password').then(function(result){if(result==1){console.log("认证成功")// TODO:查询检验varcol=db.collection("testcollection");col.find({},function(err,docs){console.log(docs)// 你会发现此时可以成功获取到数据了 })}});});});
背景
最近开发一个公司项目,需要支持外网访问,而公司要求:应用服务器跟数据服务器必须分开,所以才有了应用服务器连接数据服务器这么一说。
Let's go
提前申明
如何给mongodb设置权限
为了安全起见,我们一般都会给数据库设置不同权限的用户。
你会发现报错如下:
不要紧张,这意思就是你没有认证数据库admin,连接时加上密码认证即可。
连接带认证的mongodb数据库
这里遇到个问题,正常代码逻辑如下:
结果发现报错:
查monk源码manager.js发现连接这一段代码如下:
是的,你没看错,它是直接连接,没有提供
authenticate
、createUser
等其他方法,心里一片绝望,此时,想解决问题有两种方案:两种方法感觉都不太合适,正值绝望之时,看见下面的代码
既然原生支持这种连接,那么monk应该也可以,如果可以,那么便解决了上面的问题了,说做就做。
Perfect!
进入应用服务器连接数据服务器
通过之前申请到的权限,进入应用服务器的堡垒机,连接进入应用服务器
在应用服务器上进行数据库的连接测试
只需要把
username
、password
、server
填入上面的字段,即可成功连接数据库服务器。(完)
The text was updated successfully, but these errors were encountered: