我正在使用ExpressJS和Mongoose。
var MongoStore = require('connect-mongo')(express);
var sessionStore = new MongoStore({db: 'myappsession'});
app.use(express.session({ secret: "myappsecret", store:sessionStore }));
这导致“MongoError:错误:未经授权的数据库”。我想我需要传递我的登录凭据。我也有,
var mongoose = require('mongoose');
var db = mongoose.createConnection('<omitted username, password and address>', 'myappsession');
我猜connect-mongo需要这些信息才能登录我的数据库来创建会话存储?
问题
如何通过connect-mongo登录信息?或者我做错了吗?
答案 0 :(得分:3)
就我而言,由于我已经在积极使用Mongoose,我最终使用了Mongoose的解决方案。
<强> 1。安装session-mongoose
https://github.com/donpark/session-mongoose
<强> 2。使用本教程作为指南。
http://mikevalstar.com/Blog/107/Coding_with_Nodejs_Part_31_Mongoose_Sessions
第3。特别是,我对本教程的这一行有疑问。
url: "mongodb://localhost/mv"
这应该是类似的,
url: "username:password@url/testdatabase"
然后将会话存储在集合“sessions”中名为“”testdatabase“的数据库中。
我希望这个答案可以帮助别人避免一些挫败感。 :)
答案 1 :(得分:1)
您需要使用MongoDB URI。看看这里的文档: http://www.mongodb.org/display/DOCS/Connections
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
因此,如果您要连接到单个服务器,只需使用:
mongoose.createConnection('mongodb://[username:password@]host1[:port1]', 'myappsession');