0
mongodb MongoClient
を使用してデータベースに接続し、db
変数をアプリ全体の他の場所で使用しようとしています。私はthe documentsで提供されているパターンに従っています。しかし何らかの理由で私のdb
変数が来ていますundefined
。ここに私のコードだ:mongo.js
でmongodb 'db'を別のnode.jsモジュールにエクスポート
:
Question.js
で
var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server;
var dbconnection;
MongoClient.connect("mongodb://127.0.0.1/smartmonthly", function (err, db) {
if (err) {
console.log("connection err ", err);
throw err;
} else {
console.log("successfully connected to the database");
this.dbconnection = db;
}
});
module.exports.dbconnection = dbconnection;
:
var mongo = require('./mongo.js');
module.exports = {
all: function() {
var questionsCursor = mongo.dbconnection.collection('Question').find({"Vertical": "Cellular"});
questionsCursor.toArray(function(err, documents) {
console.log("documents length ", documents.length);
questions = documents;
mongo.db.close();
return questions;
});
}
}
このコードは、エラーがスローされます。この行のTypeError: Cannot read property 'collection' of undefined
:
var questionsCursor = mongo.dbconnection.collection('Question').find({"Vertical": "Cellular"});
私は何をしないのです?
は、あなたがのDBConnection =デシベルを行う必要があります。 this.dbconnection = dbの代わりに。 –
私はそれを試みましたが、同じエラーが発生します。 – Eddy
module.exports.dbconnection = dbconnectionです。コールバックの前に実行されるため、エクスポートされたdbconnectionが定義されていません。 –