2016-05-17 14 views
0

以下はapp.jsファイルの私のコードです。このコードを実行すると、 がMongoDBに接続され、 'DBに接続されました'というメッセージが表示されます。Node.jsからMongoDBに接続するとNodeがハングする

しかし、メッセージが表示されたら、私はプログラムが終了することを期待していました。代わりに プログラムが実行され続けます。

なぜプログラムは実行され続け、テキストの印刷後に終了しないのですか?

const mongodb = require('mongodb'); 
const co = require('co'); 

const MongoClient = mongodb.MongoClient; 
const url = "mongodb://localhost:27017/test9"; 

co(function *() { 
    db = yield MongoClient.connect(url); 
    console.log('Connected to DB'); 
}); 

答えて

1

あなたが接続を閉じるしていないので、ノードは、あなたがそれで行われているし、それが実行中のままになりますないアイデアを持っていません。あなたはそれを閉じると

、プロセスが正常に終了します:

co(function *() { 
    let db = yield MongoClient.connect(url); 
    console.log('Connected to DB'); 
    yield db.close(); 
}); 
+0

は、私は降伏app.listen(3009、機能を()を追加した場合{ はconsole.log( 'サーバーに接続し、もう一つ質問があります。 '); }); 「Connected to DB」の後に「Connected to Server」と表示されないのはなぜですか?ありがとうございます – refactor

+1

'yield'は[_" yieldables "_](https://www.npmjs.com/package/co#yieldables)としか動作しません。 – robertklep

+0

延長して申し訳ありませんが、私はMongoDBに接続した後で "聴く"ことを意図しています。そのために何を修正する必要があるのですか? – refactor

関連する問題