如何确定我的JavaScript是否在nodejs中运行

时间:2016-03-17 06:29:07

标签: javascript node.js

我有一个脚本,它有一些程序逻辑。我使用nodejs运行此脚本,以实现服务器和客户端之间的实时通信。有时由于某些错误,nodejs停止并且脚本无法运行。这就是我运行脚本的方式

nodejs myscript.js

现在在这个脚本中如果我有一些错误(比如一些未定义的变量)Nodejs停止运行并抛出错误

ReferenceError: abcd is not defined
at WebSocket.open (/var/nodes/myserver/myscript.js:99:54)
at WebSocket.emit (events.js:92:17)

现在我怎么能发现我的脚本由于某些错误而停止运行?我确信有一些方法可以实现这一目标。如果这不可能,那么我可以运行另一个脚本(比如说watch.js)来跟踪myscript.js。但是怎么做呢??

谢谢

2 个答案:

答案 0 :(得分:1)

节点进程有一个uncaughtException事件,您可以处理

process.on('uncaughtException', (err) => {
  console.log(`Caught exception: ${err}`);
});

在此处查看更多详情https://nodejs.org/api/process.html#process_event_uncaughtexception

答案 1 :(得分:0)

将stderr输出到日志文件并检查它:

node myscript.js 2>>"log/`date +"%Y-%m-%d %T-%N"`.log"