2012-04-28 20 views
1

我有以下代碼(簡化):的Javascript:訪問家長函數的變量

function(req, res) { 
    var path = 'login'; 

    req.on('end', function(data) { 
    var post = parsevars(rawpost, '&'); 
    if (typeof post.username !== 'undefined' && typeof post.password !== 'undefined') { 
     if (handlelogin(post.username, post.password)) 
     path = req.url; 
    } 
    }); 
}

中的加粗部分爲預期什麼行不通:/
如何逃離這個範圍的限制將任何輸入很棒。

+0

以及預期的行爲是什麼?你是否在''end''火災時期望它會改變的其他一些關閉中'泄漏''路徑'?否則我不明白它是如何聲明它的外部函數。 – 2012-04-28 19:45:12

回答

0

奇數,即工作自req是在閉包的外部範圍。

不過,我想你會發現,目前的req也可作爲回調中this,即:

path = this.url; 
+0

像你的編輯說,這應該工作,我非常懷疑改變引用的名稱會產生影響。事實上,如果是這樣,我們應該更加擔心。最有可能的原因:OP的錯誤,儘管沒有零信息,但沒有太多可以完成的事情。 – davin 2012-04-28 19:47:40

2

它的工作,之後的代碼之前的事件處理程序只是執行。

+1

歡迎來到異步世界:) – ZeissS 2012-04-28 20:10:06