mongodbコレクション名をパラメーターとして受け取り、CRUDオペレーションの実行に使用できるようにコレクションのインスタンスを返す関数を作成しようとしています。しかし、コレクションのインスタンスを返そうとすると、返り文としてが「未定義」が返され、MongoClient.connect関数の実行が終了する前に実行されます。nodejsを同期して実行する
module.exports.dbConnection = function(collectionName)
{
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1/test";
var collName;
MongoClient.connect(url, function(err, db)
{
var collName = db.collection(collectionName);
console.log(collName)
});
return collName;
}
私はこの問題を解決する方法についてアサーションを得ることはできますか? ありがとう
私はnodejsにかなり新しいので、変数を宣言している間に** var **と** let **の違いを教えてください。私はあなたがlet cachedDBを使っているのを見るでしょう。 var cachedDBも使用できますか? –
letはブロックスコープローカル変数(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)を定義します。はい、ここでvarを使用できます。 –