我正在尝试开发一个Node.js web应用程序,我正在尝试将一些初始化步骤委托给不同的模块
my server.js file
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
projectsServerserver.js:8:7)
我认为JavaScript通过引用传递对象,所以我想知道为什么会出现这个错误。请提前帮助和感谢
您将authExceptions
视为(全局)变量当前范围内可解析(自由)变量,但它不是:它是appInfo
对象的属性。
试试这个:
...
addExceptions: function(exceptionString) {
this.authExceptions.push(exceptionString);
}