Node.js将对象传递给require模块时引用错误

时间:2013-04-25 15:21:04

标签: javascript node.js

我正在尝试开发一个Node.js Web应用程序,我正在尝试将一些初始化步骤委托给另一个模块

我的server.js文件

var express = require('express')
var app = express();  
var appInfo = {
    port:8000,
    appName:'MyApp',
    authExceptions:[],
    addExceptions:function(exceptionString){      
      authExceptions.push(exceptionString);
    }
};
var appConfigFile = '../MyApp/config';
logMsg('Reading file:'+appConfigFile); 
require(appConfigFile)(app,appInfo);
app.listen(appInfo.port);

我的config.js文件是

module.exports=function(app, appInfo){
   appInfo.addExceptions('/employee/*');
}

当我运行时,我得到以下异常

ReferenceError: authExceptions is not defined
    at Object.applicationInfo.(anonymous function).addExceptions(c:\my
projects\Server\server.js:8:7)

我在想JavaScript通过引用传递对象,所以我想知道为什么会出现这个错误。 请提前帮助和感谢

1 个答案:

答案 0 :(得分:2)

你正在将authExceptions视为当前范围内的 a(全局)变量一个可解析(自由)变量,但它不是:它是{{1}的属性对象。

试试这个:

appInfo