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

我正在尝试开发一个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/*'); } 

当我运行这个我得到下面的exception

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

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

您将authExceptions视为当前作用域中的(全局)variables可parsing(可用)variables,但它不是:它是appInfo对象的属性。

试试这个:

 ... addExceptions: function(exceptionString) { this.authExceptions.push(exceptionString); }