如何使用和尚连接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的单独文件,并在该文件中导出连接,这是更清洁。