次のコードを実行すると、MongoDBに順番に接続され、javascriptでasync.waterfallを使用して閉じます。プログラムは期待どおりに終了しません。代わりに、単に「DB閉」行の後に待つように表示されます。なぜ私のasync.waterfall JavaScriptのシーケンシャルコードが終了しないのですか?
$ node test-async2.js
hit connectMongo
Connected correctly to server, DB: notes
hit closeMongo
DB closed
[program just waits here, doesn't end]
は、私が終了するプログラムを期待していた。私は?
const
async = require('async'),
MongoClient = require('mongodb').MongoClient,
url = 'mongodb://localhost:27017/notes';
function connectMongo(next) {
console.log('hit connectMongo');
MongoClient.connect(url, function(err, db) {
console.log("Connected to server, DB: " + db.databaseName);
next(null, db);
});
}
function closeMongo(db, next) {
console.log('hit closeMongo');
db.close;
next(null, "DB closed");
}
// perform connect then close sequentially
async.waterfall([
connectMongo,
closeMongo,
], function (err, result) {
if (err) throw err;
console.log(result);
});
あなたがこれまでのコードで書かれた何?end.'するプログラム 'によって何を意味するか、それが何であるかであります私は 'ctrl + c'が助けになると思いますあなたはあなたのプログラムを止める。私はそれが自動的に終了するとは思わない。 – Shrabanee
'close'と呼んでいますか?カッコはありません。 – cartant
@cartant - それで、ありがとう。私はちょうど愚かな間違いを見ることができなかったので、コードを見つめていました。再度、感謝します !!! – Jon