Sails / Node:将严重/崩溃错误记录到文件中

时间:2016-12-14 14:42:10

标签: node.js sails.js

我在NodeJS 5.12.0中运行Sails.js v0.11.0。

我有时遇到严重错误,导致整个节点js崩溃。例如,Sails控制器中的此代码

module.exports = {

  fooFunction: function () {
    console.log("Starting to do a silly thing");
    postgresClient.connectClient(function(err, client) {
      client.query("SELECT * FROM my_table WHERE id = $1", [req.user], function(err, result) {
      });
    });
  },
}

结果

client.query("SELECT * FROM my_table WHERE id = $1", [req.user], function(err, result) {
                                                            ^
ReferenceError: req is not defined

我也想知道为什么这个错误 - 不像其他许多人 - 不会以某种方式被捕获并且不会导致像

这样的错误
error: Sending 500 ("Server Error") response: 
 TypeError: Cannot read property 'user' of undefined

当应用程序继续运行时。

但那不是我的观点。

我的观点是:如何记录此严重错误消息,导致我的应用程序崩溃到文件中?

它没有包含在我的标准sails.log文件中,其中所有"正常" Sails错误进入。如果我使用命令node app.js > myfile.log将标准输出更改为运行我的应用程序的文件,也不会记录。在这种情况下,myfile.log的内容只是

[32minfo[39m:    Sails              <|    .-..-.
[32minfo[39m:    v0.11.0             |\
[...]
Starting to do a silly thing

然后停止。实际的错误不存在。它就在我的控制台上。当尝试调试在无头系统上运行的远程应用程序时,这非常烦人。那么,我怎样才能将这些错误记录到日志文件中?

0 个答案:

没有答案