5

我正在使用 ExpressJS 和猫鼬。

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 登录信息?还是我做错了?

4

2 回答 2

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"

然后将会话存储在集合“会话”中名为“测试数据库”的数据库中。

我希望这个答案可以帮助某人避免一些挫败感。:)

于 2012-09-23T17:43:38.153 回答
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');
于 2012-09-23T17:35:04.520 回答