MongoJS Node.js模块:" db未定义"

时间:2014-05-27 04:17:23

标签: javascript node.js mongodb mongojs

我是Node.js,MongoDB和MongoJS的新手。

我有app.js这是我从node app.js命令行运行的服务器。在OS X 10.9.1与Node.js v0.10.28。

的本地计算机上

app.js我有(作为片段)

var db = require('./database');

var blog = require('./classes/blog');

database.js

var db = require("mongojs");

db.connect('mydb',  ["Users", "Posts"]);

/classes/blog.js

function load(OnDone) {
    if (db.connected) {
        OnDone();
    }
}

当我致电blog.load()时,我得到了

ReferenceError: db is not defined
    at Object.load (node/classes/blog.js:13:6)
    at node/app.js:36:7
    at Server.onRequest (node/server.js:35:12)
    at Server.EventEmitter.emit (events.js:98:17)
    at HTTPParser.parser.onIncoming (http.js:2108:12)
    at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
    at Socket.socket.ondata (http.js:1966:22)
    at TCP.onread (net.js:527:27)

当我尝试调用load()函数时,我的应用程序中的所有内容都按预期工作,但使用我认为在db中声明的app.js var

为什么db未定义?我使用模块错了吗?

注意:如果你不知道,我从我的脚本中提取了这些代码行,因为到目前为止,我的应用程序相对较长,因此我不想显示所有内容。除非我需要。

1 个答案:

答案 0 :(得分:0)

我相信Node.js模块已被包含,因此无法访问其父项中定义的变量(正如我所假设的那样)。

我将db移到了全局命名空间(我删除了var),现在它正在运行。