Nodejs 新版的 express 中, 代码改动自动重启服务器问题

Nodejs 新版的 express 中, 代码改动自动重启服务器问题

新版的 express(4.2.0) 中, 启动项目已然不是 node app.js (npm start),

这样也导致 修改了代码无法自动重启服务器(supervisor dev等无法用了)

怎么破?

7 回复

Nodejs 新版的 express 中, 代码改动自动重启服务器问题

在新版的 Express(例如 4.2.0 版本)中,启动项目的命令不再是简单的 node app.js 或者 npm start。这导致了一个常见的问题:当你修改了代码后,服务器不会自动重启。使用传统的工具如 supervisornodemon 可能会遇到一些限制或配置问题。

解决方案

你可以使用 nodemon 这个工具来解决这个问题。nodemon 是一个更现代的工具,能够监听文件变化并自动重启你的应用。

  1. 安装 nodemon

    首先你需要全局安装 nodemon 或将其添加到你的项目依赖中:

    npm install --save-dev nodemon
    
  2. 修改启动脚本

    修改你的 package.json 文件中的 scripts 部分,将启动命令改为使用 nodemon

    {
      "name": "your-app",
      "version": "1.0.0",
      "main": "app.js",
      "scripts": {
        "start": "node app.js",
        "dev": "nodemon app.js"
      },
      "dependencies": {
        "express": "^4.17.1"
      },
      "devDependencies": {
        "nodemon": "^2.0.15"
      }
    }
    
  3. 运行开发模式

    现在你可以通过运行以下命令来启动你的应用,并且当代码发生变化时会自动重启:

    npm run dev
    

示例代码

假设你有一个简单的 Express 应用:

// app.js
const express = require('express');
const app = express();

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

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

当你运行 npm run dev 时,nodemon 会监听文件的变化,并在检测到任何变化时自动重启你的应用。

总结

通过使用 nodemon,你可以轻松地实现代码改动后的自动重启功能。这使得开发过程更加高效和便捷。希望这个解决方案能帮助你解决问题!


怎么不是?

npm start最终启动的是 node ./www

你别用npm start 直接启动www不就完了

我给你正确的,没有依赖性的

exports.nx = function(){ if(cluster.isMaster){ console.log(“宿主启动…”); for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on(‘listening’,function(worker,address){ console.log(‘核心’+i+’ pid:’+ worker.process.pid); }); cluster.on(‘exit’, function(worker, code, signal) { console.log(‘核心’+i+’ pid:’+ worker.process.pid+’ 重启’) setTimeout(function() {cluster.fork();},2000); }); }else{ app.set(‘port’,88); var server = app.listen(app.get(‘port’),function() { }); } }

//多核及挂断自动重启。

额, 这个问题已经解决: 2楼是对的, 因为 npm start 相当于是 node www,

所以 要实现 代码重启或调试等只要: node-dev www(假设已经安装dev模块) 重启 node --debug www 调试

当然以上命令行得到 express 的 bin 目录下执行

在新版的 Express 中,你可以使用 nodemon 来实现代码改动自动重启服务器。nodemon 是一个比 supervisor 更现代化的工具,它更易于使用且兼容性更好。

示例步骤

  1. 安装 nodemon

    你可以在项目的 package.json 文件中添加一个脚本命令来使用 nodemon

    "scripts": {
      "start": "node app.js",
      "dev": "nodemon app.js"
    }
    
  2. 启动开发模式

    使用以下命令启动开发模式:

    npm run dev
    

示例代码

假设你的 app.js 文件内容如下:

const express = require('express');
const app = express();

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

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

解释

  • nodemon: 这是一个 Node.js 工具,用于在更改代码时自动重启服务器。它会在后台运行,并监听文件变化。

  • npm run dev: 通过在 package.json 中定义 dev 脚本,可以方便地启动 nodemon。当你修改代码后,服务器会自动重启,无需手动停止和重新启动。

使用这种方式,你不需要依赖 supervisor 或其他过时的工具,可以更加高效地进行开发。

回到顶部