2012-08-11 14 views
6

私はマングース接続/モデル:常に開いている必要がありますか?

conn = mongoose.createConnection(...) 
conn.on("open", ...) 

質問は、データベースに接続するためにマングース3、最も明白な方法をされている使用しています私は、オープンコールバックですべての私のモデルを定義する必要がありますか?それがそうであるならば、私はモジュールがそのようなコールバックで定義することができないノードのドキュメントにどこかで読んだと思う

# initMongoose.coffee 

mongoose = require "mongoose" 
module.exports = mongoose.createConnection ... 

# modelExample.coffee 

conn = require "./initDatabase" 
conn.on "open", -> 
    ... define model? 
    modeule.exports = model # I think this does not work? 

のように見えるinitMongoose.coffeeを作成する必要がありますか?


私は1つのだけの接続を使用しておりますので、私は私が同期していると仮定して任意のコールバックを受け付けるdoesntの

mongoose.connect ... 

を使用することができると思いますか? connect()の直後にすべてのモデルとクエリを定義できますか?それは現時点では機能しますが、十分に速いためかもしれません。

+0

質問していただきありがとうございます。私はコールバックにそれを置かない例のすべての種類を参照してくださいと私はうんざりしていた!また、私はそれをコールバックに入れなければならない場合、プログラムをどのように構造化するのかと思っていました。 – huggie

答えて

16

Mongooseは、接続が完了するまでコマンドをバッファーに入れます。そのため、同期しているように扱い、モデルを定義していつでもライブラリを使い始めることができます。実際にデータの挿入や検索を開始したい場合にのみ、接続を行う必要があります。

+0

あなたの第2部は第1部と矛盾するようです。だから、私は接続直後にモデルを定義することができますが、私は挿入と同じことをすることはできますか? –

+0

はい。つまり、接続は非同期ですが、そのように処理する必要はありません.Mongooseは接続が完了していないことを検出し、完了後まで挿入をバッファします。 –

+0

@MichelleTilleyソースですか? – CodyBugstein

関連する問題