1

私はNode.js+Express + Mongooseを使用しており、「セッション」データを格納するために使用するMongooseスキーマを持っています。同時に、セッション管理(ネイティブドライバー)に「connect-mongodb」を使用しています。

今日だけ、私は冗長な機能を持っていることに気づきました。

そこで、スキーマオブジェクトを「req.session」に追加しようとしました。動作しているようですが、次のリクエストでスキーマオブジェクトのMoongose機能を失います。

私が考える1つのオプションは、オブジェクトのIDである「req.session」に格納してから、Mongooseを使用してそれを取得することです。

私が考えるもう1つのオプションは、「connect-mongoose」をMongooseセッションマネージャーに置き換えることです。

決定を手伝ってくれて、方法を教えてくれませんか。さらに具体的に言うと、Mongooseソリューションを使用すると、SchemaオブジェクトでMongoose機能が失われる問題が解決されますか?

TIA

4

1 に答える 1

1

私のアドバイスは、Mongoose をセッション管理から完全に除外し、.NET 上のセッションではプレーンな JavaScript オブジェクトのみを永続化することreq.sessionです。そうすれば、現在と同じように connect-mongodb を使用したり、データベースを分離したい場合はconnect-redisなどの他のセッション ストアに簡単に切り替えることができます。セッションの一部と思われる Mongoose オブジェクトに頻繁にアクセスする必要がある場合は、これらのオブジェクトの objectId をセッション内の文字列として保持し、必要に応じてすばやく簡単に検索できるようにします。

于 2012-09-01T03:08:45.840 に答える