如何使用和尚连接monogodb?

我正在使用expressjs框架构buildnodejs应用程序。 我想问问我们如何用monk连接到mongodb? 我在网上find这个代码,但似乎我们不需要指定用户名和密码。 为什么?

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

欣赏任何build议。

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

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

它没有很好的logging,但由于monk使用mongoskin ,你可以在这里寻找更多的信息。

我想添加一个替代上面的答案,因为都没有为我工作。

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

1.确保在创build用户的同时以具有相应权限的用户身份login到mongodb,以在数据库上创build用户(如具有angular色userAdminAnyDatabase的用户)。 如果您没有具有此angular色的用户,只需使用mongod而不使用--auth和login作为超级用户(如果有),或使用简单的mongo命令重新启动mongo,并使该用户具有适当的权限。

我强烈build议读一读mongodb的angular色: http : //docs.mongodb.org/manual/reference/built-in-roles/

2.一旦您以适当的用户身份login数据库实例并input其他用户,请键入use db_name ,其中db_name是要让用户使用的数据库的名称。

一旦这个数据库中使用db.createUser命令就像这样: db.createUser({user:"your_username", pwd:"your_password", roles:["your_role"]})这里logging: http:// docs .mongodb.org /手动/参考/方法/ db.createUser /

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

完成此操作后,您应该能够login到正在运行的mongod –auth实例,并为该用户创build的特定数据库提供用户。

对于好奇的人,我正在Koa开发一个小型的networking应用程序。 和尚和和尚

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') 

虽然我会build议做一个名为db.js的单独文件,并在该文件中导出连接,这是更清洁。