【问题标题】:So I want to restart nodejs server at crash所以我想在崩溃时重新启动nodejs服务器
【发布时间】:2021-03-13 01:13:20
【问题描述】:

所以我想在崩溃时重新启动 nodejs 服务器。我用这个命令运行脚本。

nodemon -r esm app.js

我一直尝试,但不知何故找不到正确的命令来打包“nodemon -r esm app.js”并在崩溃时添加重启功能。

【问题讨论】:

    标签: node.js nodemon forever


    【解决方案1】:

    您可以尝试 PM2 或使用 systemd 运行 nodejs 应用程序

    [Unit]
    Description=app.js
    Documentation=https://example.com
    After=network.target
    
    [Service]
    Environment=NODE_PORT=3001
    Type=simple
    User=ubuntu
    ExecStart=/usr/bin/node /home/ubuntu/app.js
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    PM2:pm2 start app.js

    【讨论】:

    • 谢谢!我使用的是 Windows 10。我认为它适用于 linux
    【解决方案2】:

    这是您需要同时支持 nodemon 和 Forever.js 的标准。

    forever start -c "nodemon -r esm --harmony" app.js --exitcrash
    

    【讨论】:

    • 谢谢。如何添加 ECMAScript 6 模块支持?我用 node -r esm app.js 做到这一点,但如何永远做?好吧,我需要 nodemon,因为它可以在文件更改时重新启动(例如我修改时)
    • 谢谢。脚本运行没有错误,但不执行任何操作。如果我运行 node -r esm app.js 它应该使用 console.log 执行 1 如果我按照你的方式运行它会停止而没有任何输出。
    • 这是我与 nodemon -r esm app.js 一起使用的示例代码 -->import {something} from './test';让 x=1; console.log(x) 并且它不适用于更新的方法。还需要另一个包含此代码的文件 test.js,例如:“let something=0; export{something}”,只有我当前的方法适用于这些。