// 1. If a module already exists in the cache: return its exports object.
// 2. If the module is native: call `NativeModule.require()` with the
// filename and return the result.
// 3. Otherwise, create a new module for the file and save it to the cache.
// Then have it load the file contents before returning its exports
// object.
Module._load = function(request, parent, isMain) {
var filename = Module._resolveFilename(request, parent);

var cachedModule = Module._cache[filename];
if (cachedModule) {
return cachedModule.exports;
}

var module = new Module(filename, parent);
Module._cache[filename] = module;
module.load(filename);

return module.exports;
};

require.cache = Module._cache;
 

可以發現其中的核心就是 Module._cache ,只要清除了這個模塊緩存,下一次 require 的時候,模塊管理器就會重新加載最新的代碼了。

寫一個小程序驗證一下:

// main.js
function cleanCache (module) {
var path = require.resolve(module);
require.cache[path] = null;
}

setInterval(function () {
cleanCache(\\\’./code.js\\\’);
var code = require(\\\’./code.js\\\’);
console.log(code);
}, 5000);

// code.js
module.exports = \\\’hello world\\\’;
 

我們執行一下 main.js ,同時取修改 code.js 的內容,就可以發現控制臺中,我們代碼成功的更新為了最新的代碼。

那么模塊管理器更新代碼的問題已經解決了,接下來再看看在 Web 應用中,我們如何讓新的模塊可以被實際執行。

 更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:www.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » Node.js Web應用代碼熱更新的另類思路

登錄

找回密碼

注冊

主站蜘蛛池模板: 久爱无码精品免费视频在线观看| 亚洲天堂成人一区二区三区| 亚洲欧美日韩综合久久| 国产av综合色高清自拍| 亚洲欧美综合精品成| 亚洲国产成人va在线观看天堂 | 亚洲一区二区偷拍精品| 亚洲精品成人福利网站| 国内极度色诱视频网站| 一卡2卡三卡4卡免费网站| 国产成人AV国语在线观看| 国内精品免费久久久久电影院97| 大陆精大陆国产国语精品| 国产免费播放一区二区三区| 亚洲国产成人av国产自| 99在线 | 亚洲| 内射干少妇亚洲69XXX| 欧美成人精品手机在线| 韩国19禁无遮挡啪啪无码网站| 国产精品一二二区视在线| 亚洲一本大道无码av天堂| 国产成人亚洲精品成人区| 欧洲一区二区中文字幕| 久热天堂在线视频精品伊人| 国产中文字幕精品视频| 日本亲近相奷中文字幕| 精品国产乱码久久久人妻| 天堂а√在线中文在线| 99在线视频免费观看| 国产精品高清一区二区三区| 国产亚洲精品第一综合麻豆| 亚洲熟女精品一区二区| 五月婷之久久综合丝袜美腿| 亚洲av永久无码精品网站| 精品乱码一区二区三四五区| 国产在线啪| 国产成人影院一区二区三区| 日韩中文字幕高清有码| 国产在线播放专区av| 成人性无码专区免费视频| 国产精品无码素人福利不卡|