我有一个脚本,它有一些程序逻辑。我使用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。但是怎么做呢??
谢谢
答案 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"