我试图设置这个简单的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并从我包含的文件中引用它?
提前致谢...
答案 0 :(得分:2)
您需要server.js
文件中的menu.js
。
您的db
对象不是全局的。如果您想要它,请在没有var
的情况下声明它。