nodejs mongodb api 在哪儿设置 方法server认证访问~!即用户名和密码!
发布于 1年前 作者 zhouaini528 1091 次浏览

我的nodejs链接方式 var mongoclient = new MongoClient(new Server("192.168.1.227", 27017));

但是这是没有认证的访问 我设置了认证访问 所以用要用户名和密码 我php端是这样链接的 $m = new Mongo(‘mongodb://lwj:asdasd@192.168.1.227:27017’);//链接成功 而nodejs mongodb API 我招了N久没有找到方法 求助

官方API Constructor Class representing a single MongoDB Server connection

class Server() Arguments:
//三个参数 host 我设置mongodb://lwj:asdasd@192.168.1227 却不行 host (string) – the server host

port (number) – the server port [options] (object) – optional options for insert command

求助

11 回复

http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html 这里有比较详细的说明吧 其中

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, db) {
  test.equal(null, err);
  test.ok(db != null);

  db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) {
    test.equal(null, err);
    test.equal(1, result);

    db.close();
    test.done();
  });
});

这里就是可以直接用 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]方式连接了吧?

谢谢你 之前用过这个方法 但是当时不成功,现在回想起来 发现自己真的很2啊。我当时给admin 添加了认证 但是对其他的数据库没有添加 所有我访问其他数据库的时候 认证就不对 而访问admin就行了。但是这里我有一个疑问 既然给admin 添加认证 为什么其他数据库 就不是同一认证???

你的这个方法我还没试~~但是应该可以啊 我看了N久的文档 找了一方法 http://mongodb.github.io/node-mongodb-native/api-generated/db.html#authenticate

难道 每个数据库 都有自己的单独认证??

我在mongodb.config 默认开启了 auth=true的

@zhouaini528 应该是单独的数据库都有对应的认证吧,但是应该有账户可以浏览所有的库的吧?这个应该是需要选择一下吧?记不太清了,可以看看官方文档吧。

@thesadboy 刚刚试过了 你如果设置auth=true 每个数据库都要添加认证的 按理来说应该有一个全局认证吧 我下来好好研究一下 3Q

@thesadboy 刚刚试过了 你给的那个方法 是行的。 我以为 我在admin 添加了 认证 就是全局认证 看来被坑惨了

回到顶部