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

 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 具有以下功能:
javascript - 显示 undefined variable 名称,而不仅仅是未定义的 Node-LMLPHP

所以节点也必须有可能

我正在使用节点6.3.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)
      }
   });

}

09-19 14:26