我正在尝试开发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通过引用传递对象,因此我想知道为什么会出现此错误。
请帮助并提前感谢

最佳答案

您将authExceptions视为当前范围内的(全局)变量和可解决的(自由)变量,但事实并非如此:它是appInfo对象的属性。

尝试以下方法:


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

10-06 15:37