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); }