5

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 にログイン情報を渡すにはどうすればよいですか? それとも私はこれを間違っていますか?

4

2 に答える 2

3

私の場合、すでにマングースを積極的に使用しているので、マングースのソリューションを使用することになりました。

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」という名前のデータベースに保存されます。

この答えが誰かが欲求不満を避けるのに役立つことを願っています。:)

于 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 に答える