Node.js process.kill 导致进程退出失败 (1)

Node.js process.kill is causing an unsuccessful process exit (1)

我是 node.js 的新手,按照 node.js documentation about process signals 我编写了以下代码

const express = require("express");

const app = express();

app.get("/", (req, res) => {
  res.send("Hi!");
});

const server = app.listen(3000, () => console.log("Server ready"));

process.on("SIGTERM", () => {
  console.log("Handler started");
  server.close(() => {
    console.log("Process terminated");
  });
});

for (let i = 0; i < 10; i++) {
  if (i === 5) {
    process.kill(process.pid, "SIGTERM");
  } else {
    console.log(i);
  }
}

但在终端中 运行 运行此应用后,输出 (node app.js) 如下:

0
1
2
3
4

处理程序没有 运行

在 运行ning process.kill.

时,调试后进程以代码 = 1 退出

如何调试才能知道确切原因?我无法使用 try catch 块打印错误

Why "Handler started" and "Process terminated" are not printed to the console ?

当我运行正在执行以下脚本时,我正在控制台上打印一些东西。我认为你应该 运行 下面的脚本并测试它:

const express = require('express')

const app = express()

app.get('/', (req, res) => {
  res.send('Hi!')
})

const server = app.listen(3000, () => console.log('Server ready'))

process.on('SIGTERM', () => {
  server.close(() => {
    console.log('Process terminated')
  })
});

for(let i = 0; i < 10; i ++){
  if(i === 5) {
      process.kill(process.pid, 'SIGTERM')
  }else{
      console.log(i)
  }
}

运行执行上述脚本后的结果:

AV:newTest11 apoorvachikara$ node test.js 
0
1
2
3
4
6
7
8
9
Server ready
Process terminated
AV:newTest11 apoorvachikara$ 

您正在 运行ning 的脚本似乎有一些问题。

原来 windows os 不是 POSIX 所以它不使用 unix 信号。

最好的办法是使用 linux (WSL2) 的 windows 子系统在 unix 环境中使用 windows 进行开发,或者在 unix os