显示未定义的变量名称,而不仅仅是未定义的节点

时间:2016-09-09 16:25:48

标签: javascript node.js error-handling

我意识到这是一个有点愚蠢的问题,但我想知道是否有办法显示定义的变量的实际名称而不仅仅是

 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)

在这种特殊情况下,我会报废数据,而且非常困难/无聊,以找出哪一个缺失。我知道它也给了我线条和角色所以我可以这样看,但我懒惰......

我知道firebug有这个功能: enter image description here

所以必须有节点以及

我正在使用节点6.3.0

1 个答案:

答案 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)
      }
   });

}