Nodejs 新版的 express 中, 代码改动自动重启服务器问题
Nodejs 新版的 express 中, 代码改动自动重启服务器问题
新版的 express(4.2.0) 中, 启动项目已然不是 node app.js (npm start),
这样也导致 修改了代码无法自动重启服务器(supervisor dev等无法用了)
怎么破?
Nodejs 新版的 express 中, 代码改动自动重启服务器问题
在新版的 Express(例如 4.2.0 版本)中,启动项目的命令不再是简单的 node app.js
或者 npm start
。这导致了一个常见的问题:当你修改了代码后,服务器不会自动重启。使用传统的工具如 supervisor
或 nodemon
可能会遇到一些限制或配置问题。
解决方案
你可以使用 nodemon
这个工具来解决这个问题。nodemon
是一个更现代的工具,能够监听文件变化并自动重启你的应用。
-
安装 nodemon
首先你需要全局安装
nodemon
或将其添加到你的项目依赖中:npm install --save-dev nodemon
-
修改启动脚本
修改你的
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" } }
-
运行开发模式
现在你可以通过运行以下命令来启动你的应用,并且当代码发生变化时会自动重启:
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() { }); } }
//多核及挂断自动重启。
在新版的 Express 中,你可以使用 nodemon
来实现代码改动自动重启服务器。nodemon
是一个比 supervisor
更现代化的工具,它更易于使用且兼容性更好。
示例步骤
-
安装
nodemon
你可以在项目的
package.json
文件中添加一个脚本命令来使用nodemon
:"scripts": { "start": "node app.js", "dev": "nodemon app.js" }
-
启动开发模式
使用以下命令启动开发模式:
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
或其他过时的工具,可以更加高效地进行开发。