在Nodejs上连接到mongodb的错误

时间:2015-11-16 14:39:06

标签: node.js mongodb

我正在尝试从节点连接到mongodb,我收到以下错误

  

node_modules \ mongodb的\ lib中\ mongo_client.js:458             扔错了             ^

     

ReferenceError:未定义连接

我正在使用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);

控制器 -

(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);

1 个答案:

答案 0 :(得分:0)

以防万一有人因为编码错误而遇到这样的问题,即使它的测试目的是永远不会有与API中的函数名相同的函数名。在db.js中,我有一个名为connect的未定义变量,当访问它时会发生trowing和error,因为它是通过名为" connect"的API函数调用的。 API抛出错误导致我认为API函数存在问题