防止node.js在生成的进程抛出错误时生成关闭事件

smdncfj3  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(108)

我有一个nodejs服务器,它用spawn启动一个python脚本。
python脚本中有一些检查可以抛出错误,实际上它应该有这些错误检查并返回给服务器。
但是当抛出错误时,node中的close事件最终被触发,nodejs服务器完全停止。
我似乎不知道如何防止派生进程退出并关闭服务器(只是接受并处理来自python脚本的错误)。有人能带我去吗?
或者我应该每次都重新启动服务器吗?

jckbn6z7

jckbn6z71#

Python脚本中抛出错误时,Nodejs服务器正在关闭,因为它正在等待exit脚本。
要防止Nodejs服务器关闭,可以使用child_process.on('exit')事件来处理错误。在事件处理程序中,您可以捕获错误,然后对其执行某些操作。

const { spawn } = require('child_process');

const pythonChild = spawn('python3', ['your_script.py']);

pythonChild.on('exit', (code) => {
  if (code != 0) {
    console.error(`Error in Python script: ${code}`);
  }
});

相关问题