【热启动】express中间件hotstart.
发布于 9 年前 作者 hezedu 5016 次浏览 最后一次编辑是 8 年前 来自 分享

最近两天时间撸了个 hotstart。@crystaldust 到底是不是热启动呢,还请大牛指点。

安装

npm install hotstart --save

警告

不要在app.js里用app.listen,也就是别自做聪明把bin/www 和 app.js 合一块。

设置

var express = require('express');
var app = express();
var hotstart = require('hotstart');

app.use(hotstart({
  dir: __dirname,  //必须
  handle: '/app.js',  
  ignore:['/public','/node_modules'], //忽略的目录 。如果 view cache 为 false,将还会忽略掉view path
  suffix:['.js'],  //过滤的后缀  如果 view cache 为 true, if view cache true,将还会忽略掉 view engine
  route: '/hotstart', // 简单的外部路由
  tpl: 'jade',  //模版缓存清理,目前只只持 jade ,EJS 
}, app));
//要是你项目是用express自动生成的,那你需要设置:
app.use(hotstart({dir:__dirname, tpl:'jade'},app));

启动,然后改动一些东西,在浏览器打开,比如: http://127.0.0.1:3000/hotstart

更多,项目地址

7 回复

supervisor不是现成的么?

@i5ting supervisor是冷启动呀,还有我这主要是生产环境用的。

@hezedu 没太懂,请指教

@i5ting 您最好起个express试一下。比如我只改了模版,但线上环境模版有缓存,直接重启不值得,而用hotstart清理一下就好了。

@hezedu 我一般的做法是同时部署多台,然后nginx负载,修改nginx配置,移除一台,部署一台

nginx -s reload

@i5ting 暂且没考虑Cluster、多进程、多台情况。

多谢大哥,我先研究一下代码

回到顶部