2015-11-16 3 views
1

Я пытаюсь подключиться к MongoDB от узла, и я получаю ошибку нижеошибка подключения к MongoDB на Nodejs

node_modules\mongodb\lib\mongo_client.js:458 throw err ^

ReferenceError: connect is not defined

Я использую версию модуля MongoDB 2.0.48

Я пытаюсь проведите простой контрольный код

(function (dbase) { 

    var mdb = require('mongodb'); 
    var mongoUrl = "mongodb://localhost:27017/theBoard"; 
    var connection; 

    dbase.dbConnection = function (next) { 
     if (connection) { 
      next(null, connection); 
     } else { 
      mdb.MongoClient.connect(mongoUrl, function(err, db) { 
       if (err) { 
        next(err, null); 
       } else { 
        console.log("connected");       
        connection = { db: db , notes: db.collection("notes")}; 
        next(null, connection); 

       } 
      }); 
     } 

    } 

Может кто-то, пожалуйста, помогите мне разобраться в этом вопросе.

--- Дополнительная информация

модуль данных -

(function (data) { 
var mdb = require('./db.js'); 

data.GetCategory = function() { 
    mdb.dbConnection(function(err, db) { 

     if (err) 
      console.log("Error connecting to mango"); 
     if (connect) { 
      db.notes.count(function(err, count) { 
       if (err) 
        console.log("Failed to retreive collection"); 
       else 
        console.log("Count - "+count); 

      }); 

      console.log("Connected"); 
     } 

    }); 
}})(module.exports); 

db.js

(function (dbase) { 

var mdb = require('mongodb'); 
var mongoUrl = "mongodb://localhost:27017/theBoard"; 
var connection; 

dbase.dbConnection = function (next) { 
    if (connection) { 
     next(null, connection); 
    } else { 
     mdb.MongoClient.connect(mongoUrl, function(err, db) { 
      if (err) { 
       next(err, null); 
      } else { 
       console.log("connected"); 
       connection = { db: db , notes: db.collection("notes") }; 


       next(null, connection); 

      } 
     }); 
    } 

} })(module.exports); 

Controller -

(function (controller) { 
    var data = require('.././data'); 

    controller.init = function (app) { 
     app.get("/", handleRequest); 
    } 

    var handleRequest = function (req, res) { 
     data.GetCategory(); 

     var a = {}; 
     a.send = "Mamma is coming home"; 
     res.send(a); 
    } 

})(module.exports); 
+0

попробовал это 'mdb.MongoClient.connect (mongoUrl, function (err, db) {...' строка в образце кода не дает ошибки. Попробуйте поместить эту строку за пределы функции dbase.dbConnection, а затем, какую ошибку вы получите? –

+0

Я добавил полную прогулку – Ranjeeth

ответ

0

Только в случае, если кто-то впадает в вызывать это из-за плохая практика кодирования, даже если для целей тестирования никогда не должно быть имен функций, которые совпадают с именами функций в API. В db.js у меня была неопределенная переменная с именем connect, которая забрасывала и выполняла ошибку при ее доступе, и поскольку она была вызвана через функцию API, называемую «connect», ошибка была вызвана API, заставившей меня поверить, что функция API имела проблему

Смежные вопросы