Javascript 重新加载Express.js路由更改,而无需手动重新启动服务器
我尝试了Javascript 重新加载Express.js路由更改,而无需手动重新启动服务器,javascript,node.js,express,Javascript,Node.js,Express,我尝试了expresslivereload,但它只是重新加载了视图文件 我应该使用另一个工具,还是可以将此工具配置为监视运行服务器的index.js文件 我了解到选项与节点livereload相同,并且监视文件的默认值包括.js文件 通过简单的配置,您知道任何URL吗 我的主要问题是如何为Express.js设置良好的开发环境,我想在发出请求时检查变量,每次更改路由时重新启动都很痛苦 PS当服务器处理请求时,我尝试了node inspector来检查变量,但似乎node inspector不适合
expresslivereload
,但它只是重新加载了视图文件
我应该使用另一个工具,还是可以将此工具配置为监视运行服务器的index.js
文件
我了解到选项与节点livereload
相同,并且监视文件的默认值包括.js
文件
通过简单的配置,您知道任何URL吗
我的主要问题是如何为Express.js设置良好的开发环境,我想在发出请求时检查变量,每次更改路由时重新启动都很痛苦
PS当服务器处理请求时,我尝试了node inspector
来检查变量,但似乎node inspector
不适合这样做,对吧?我想这就是您想要的
是一个实用程序,它将监视源中的任何更改并自动重新启动服务器。非常适合发展
调用示例:
nodemon index.js
我使用express.js,通常通过
npm start
安装了Nodemon后,我使用
nodemon --exec npm start
注意:nodemon app.js
在这里不起作用
由于express.js使用
start
script您可以使用“livereload”、“connect livereload”和“nodemon”将前端和后端更改加载到浏览器中。而且,这样你就不需要狼吞虎咽了。以下是它们如何协同工作:
打开一个高端端口,并将任何更改的文件通知浏览器livereload
monkey使用连接到此高端端口的JavaScript代码片段修补每个提供的HTML页面connect livereload
在任何更改的后端文件上重新启动服务器nodemon
nodemon
诱导的重新启动期间,将Express设置为启动livereload服务器查看公用目录并ping浏览器:
const livereload = require("livereload");
const connectLivereload = require("connect-livereload");
// open livereload high port and start to watch public directory for changes
const liveReloadServer = livereload.createServer();
liveReloadServer.watch(path.join(__dirname, 'public'));
// ping browser on Express boot, once browser has reconnected and handshaken
liveReloadServer.server.once("connection", () => {
setTimeout(() => {
liveReloadServer.refresh("/");
}, 100);
});
const app = express();
// monkey patch every served HTML so they know of changes
app.use(connectLivereload());
使用Nodemon启动Express
例如,通过运行npm run watch
,使用专用的watch脚本启动nodemon服务器
这里的关键点是忽略livereload已经监视的公共目录。您还可以配置具有非默认扩展名的文件,如帕格和胡子,以便监视
"scripts": {
"start": "node ./bin/www",
"watch": "nodemon --ext js,pug --ignore public"
},
您可以在中阅读较长的解释您是否尝试过使用/?我找到了。你也可以对grunt这样做,但我更喜欢gulp,因为它有更容易理解的配置。我更喜欢使用默认配置的可配置的东西。这是否回答了你的问题?简单
npm安装——保存dev nodemon
将其添加到package.json中。然后您可以添加这样的脚本:“dev”:“nodemon index.js”
,但这会重新启动服务器。我喜欢并使用nodemon开发许多静态站点,但正如Filipe所说,整个服务器进程会停止并在更改后重新启动。这与问题的要求正好相反。我认为问题的本质是OP可以简化开发工作流程,即不必手动重新启动服务器(如倒数第二段所示)。OP似乎对Nodemon也很满意(见第一条评论)。是的,@zero298和Filipe:Nodemon重新启动服务器在技术上都是正确的:)Nodemon默认使用package.json中的启动脚本,因此您可以简单地说Nodemon
,而不是Nodemon--exec npm start
。但是整个服务器正在重新启动。它会让我的cpu永远工作吗?