2013-04-25 52 views
1

我試圖建立一個Node.js的web應用程序,我想委託一些初始化步驟,不同的模塊Node.js的引用錯誤而傳遞對象的要求模塊

我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通過引用傳遞對象,所以我想知道爲什麼會出現這個錯誤。 請幫忙提前

感謝
+0

你誤會'this'。 – SLaks 2013-04-25 15:22:24

回答

2

你治療authExceptions,如果是 (全局)變量 在當前範圍解析(免費)變量,但它不是:它是appInfo對象的屬性。

試試這個:

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

+1好的答案:P – jAndy 2013-04-25 15:30:05

+0

感謝。這工作! – Srijit 2013-04-25 15:58:58