如何在Node应用程序中获得更详细的日志记录?

时间:2016-06-06 22:12:44

标签: javascript node.js promise

我有一个Node应用程序,它定义了一些模块然后启动Express服务器。问题是,有时Express服务器无法启动,我没有看到任何错误。

发生这种情况时,我会扫描git diff以查找潜在的语法错误并修复它们。这解决了问题,我的服务器再次启动。

问题是,我不确定为什么这些语法错误会无声地失败。

我举一个例子:

  module.exports = function(server){
    this.register = function (params) {
      return this.Models.User.register(user)
      } // SYNTAX ERROR - extra closing bracket
    }
    return this
  }

当我删除额外的括号时,服务器再次启动,但我原本以为我会看到一个语法错误,而不是盲目地寻找错误。

更多上下文:我的main.js文件定义了一个返回promise的函数。通过直接运行脚本(nodejs main.js)来调用promise。

此应用程序中的许多代码都是使用Promises编写的。这会产生压制错误的效果吗?如何确保记录错误,无论它们发生的范围如何?

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令开始记录未处理的承诺拒绝:

process.on("unhandledRejection", (err) => {
   console.error(err); 
});

我们在一年前添加了这个钩子。我有计划记录或抛出默认行为,我为这么长时间道歉。