linux 热加载 socket,node.js + express + socket.io 实现页面热更新

var http = require('http');

var express = require('express');

var app = express();

var server = http.createServer(app);

var path = require('path');

var root = path.join(__dirname, './public');

var fs = require('fs');

var url = require('url');

var io = require('socket.io')(server);

app.use(function (req, res, next) {

var file = url.parse(req.url).pathname;

var mode = 'reload';

createWatcher(file, mode);

next();

});

app.use(express.static(root));

var watchers = {};

function createWatcher(file, event) {

var absolute = path.join(root, file);

console.log(event);

console.log(watchers);

if (watchers[absolute]) {

return;

}else {

fs.watchFile(absolute, function (curr, prev) {

if (curr.mtime !== prev.mtime) {

console.log(`文件被修改`);

io.sockets.emit(event, file);

}

});

watchers[absolute] = true;

}

}

server.listen(8080, function () {

console.log(`The server is running on port 8080.`);

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值