node.js / mongodb文件结构

时间:2014-08-09 14:31:06

标签: node.js node-mongodb-native

我试图设置这个简单的NodeJS / mongodb应用程序,我的文件结构如下:

server.js
    |
    +-routes/menu.js
    +-routes/cases.js

在我的server.js中,我声明我的mongodb vars:

var express = require('express'),
    mongo = require('mongodb'),
    Server = mongo.Server,
    MongoClient = mongo.MongoClient,
    Db = mongo.Db,
    http = require('http'),
    app = express(),
    httpServer = http.createServer(app),
    bodyParser = require('body-parser'),
    server = new Server('host.mongohq.com', 10066, {auto_reconnect : true}),
    db = new Db('myDb', server);

db.open(function(err, client) {
    client.authenticate('myUser', 'myPassword', function(err, success) {
        console.log('Authenticated');
    });
});
var cases = require('./routes/cases'),
    menu = require('./routes/menu');

但是当我尝试在例如menu.js中引用我的db var时:

db.collection(myCollection, function(err, collection) {});

我收到一个没有定义db的错误。

显然我可以将所有mongodb声明都移到我的menu.js和cases.js文件中,但这非常优雅。那么如何创建一个mongodb实例var并从我包含的文件中引用它?

提前致谢...

1 个答案:

答案 0 :(得分:2)

您需要server.js文件中的menu.js

您的db对象不是全局的。如果您想要它,请在没有var的情况下声明它。