如何使用和尚连接到mongodb?

时间:2013-12-28 05:47:21

标签: node.js mongodb express

我正在使用expressjs框架构建一个nodejs应用程序。我想问一下我们如何使用和尚连接到mongodb?我在网上找到了这个代码,但似乎我们不需要指定用户名和密码。为什么会这样?

var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');

感谢任何建议。

3 个答案:

答案 0 :(得分:16)

有两种传递用户名/密码的方法:

// first:
var db = monk('USERNAME:PASSWORD@localhost:27017/nodetest1');

// second:
var db = monk('localhost:27017/nodetest1', {
  username : 'USERNAME',
  password : 'PASSWORD'
});

记录不完善,但由于monk使用mongoskin,您可以查看here以获取更多信息。

答案 1 :(得分:3)

我想为上面的答案添加一个替代方案,因为它既不适合我。

所以我能够连接到mongod --auth实例的方式是:

1.确保在以具有相应权限的用户身份登录mongodb时创建用户,以在数据库上创建用户(例如具有角色userAdminAnyDatabase的用户)。如果您没有具有此角色的用户,请仅使用mongod而不使用--auth重新启动mongo,并以超级用户(如果有)或使用简单mongo命令登录并进行此操作具有适当权限的用户。

我强烈建议您在这里阅读mongodb角色:http://docs.mongodb.org/manual/reference/built-in-roles/

2.一旦您使用应该创建其他用户的相应用户登录到您的数据库实例,请键入use db_name,其中db_name是您要为其创建用户的数据库的名称。< / p>

3.Once inside 此数据库使用db.createUser命令,如下所示:db.createUser({user:"your_username", pwd:"your_password", roles:["your_role"]}) 它在此处记录:http://docs.mongodb.org/manual/reference/method/db.createUser/

4.然后在代码中使用db = monk('USERNAME:PASSWORD@localhost:27017/DATABASE_NAME')

完成此操作后,您应该能够使用您为该用户创建的特定数据库的用户登录正在运行的mongod --auth实例。

对于任何好奇的人,我正在Koa开发一个小型网络应用程序。使用和尚和co-monk

答案 2 :(得分:0)

apps.js

var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/ta');
module.exports = db;

/lib/mylib.js

var db = require('../apps.js')

虽然我建议创建一个名为db.js的单独文件,然后在该文件中导出连接,这样会更清晰。