2016-09-09 29 views
-2

我意識到這是一個稍微愚蠢的問題,但我想知道是否有顯示被定義,而不是僅僅顯示未定義的變量名稱不只是不確定的節點

Unhandled rejection TypeError: Cannot read property '0' of undefined 
     at Object.gamesExport.addGame (/var/www/football.co.uk/app/api/api.Games.js:104:88) 

在變量的實際名稱的方式這個特殊的情況是我丟棄了數據,而且很難/很無聊地找出哪一個丟失了。我知道這也給了我行和字符,這樣我就可以看它這樣,但我懶...

我知道螢火具有這樣的特徵: enter image description here

所以它必須能夠與節點以及

我使用節點6.3.0

+0

您無法打開文本編輯器,輸入行號然後閱讀它?在問這個荒謬的問題時,你可以做20次。你應該知道更好,與你有多少分。 – Archer

+0

沒有評論,但下了票?有點反饋傢伙 –

+0

正如我所說的阿切爾......我可以,但我不想。 –

回答

0

通過使用stack-trace您可以快速得到你的籌碼行和文件然後將它們送入readline。它相當馬虎,但我認爲它解決了你的問題。

var stackTrace = require('stack-trace'); 
var fs = require('fs'); 
var readline = require('readline'); 

try{ 
    var x = 1; 
    x = 1+y; //Error Y not defined 
}catch (err){ 
    var count = 0; 
    var trace = stackTrace.parse(err) 
    var eFile = trace[0].fileName 
    var eLine = trace[0].lineNumber 

    var rl = readline.createInterface({ 
     input: fs.createReadStream(eFile) 
    }); 

    rl.on('line', function(line) { 
     count++ 
     if (count === eLine) { 
     console.log("Error: "+line) 
     } 
    }); 

} 
+0

謝謝woodsy爲了做到這一點:)所以我只需要在我的快速應用程序中使這個全球化,然後所有的錯誤將被捕獲,它會讓我知道行號。我會研究這種方式來更多地瞭解它。 –