###前提・実現したいこと
JavaScript初学者です。よろしくお願いします。
Node.js(Express)でMongoDBとの接続をしたいと考えております。
このサイトを参考に共通処理(MongoDB関連処理)を作成しました(「共通処理を作る」を参考)。
下記コードを実装しましたが、想定通りに動かず困っています。
調べ方もわからずどうしていいかわかりません。よろしくお願いします。
###該当のソースコード
javascript
1// lib/db.js 2var assert = require('assert'); 3var mongodb = require('mongodb'); 4var MongoClient = mongodb.MongoClient; 5 6module.exports = { 7 connection: null, // 関数connect実行後もnull 8 9 connect: function() { 10 MongoClient.connect(config.mongodb.url, function (err, db) { 11 assert.equal(null, err); 12 this.connection = db; 13 console.log(this.connection); // プロパティが色々表示 14 }); 15 console.log(this.connection); // null 16 console.log('Database Connect'); 17 }, 18};
javascript
1// index.js 2var mongo = require('./lib/db'); 3mongo.connect(); 4console.log(mongo); // { connection: null, connect: [Function: connect] }
###発生している問題・エラーメッセージ
lib/db.jsで定義したconnect関数をindex.jsで実行してもプロパティconnectionがnullから変わりません。想定している動作はindex.jsでconnect関数を実行するとmongoDBのコネクションがプロパティconnectionに格納されていることです。
###試したこと
コールバック関数内にreturn文を入れたり、コールバック関数をそもそも使わなかったりしましたが、想定通りに動いてくれませんでした。
コールバック関数を使用しない場合はプロパティconnectionがPendingとなり動きが中身が変わっていました。
###補足情(言語/FW/ツール等のバージョンなど)
nodejs:v8.2.1
mongodb:2.2.30
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/07 09:44
2017/08/07 11:18