// 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 應用中,我們如何讓新的模塊可以被實際執行。

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

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

登錄

找回密碼

注冊

主站蜘蛛池模板: 中文字幕av一区二区| 女人与牲口性恔配视频免费| 小伙无套内射老熟女精品| 红杏av在线dvd综合| 国产精品亚洲专区无码破解版| 久久久久久免费一区二区三区| 爱色精品视频一区二区| 精品久久久久国产免费| 成人午夜福利视频一区二区| 熟女一区二区中文在线| 一区二区三区黄色一级片| 午夜A理论片在线播放| 东京热一区二区三区在线| 久久亚洲精品11p| 国产精品国产精品偷麻豆| 99精品国产一区二区三区2021| 国产亚洲一区二区三区啪| √天堂中文www官网在线| 国产粉嫩区一区二区三区| 国产成人啪精品视频免费网| 成人免费乱码大片a毛片| 熟妇无码熟妇毛片| 亚洲ΑV久久久噜噜噜噜噜| 日韩精品一区二区三区激| 亚洲av久久精品狠狠爱av| 成人免费A级毛片无码网站入口 | 免费无码一区二区三区蜜桃| 亚洲大尺度无码无码专线| 欧产日产国产精品精品| 久久一卡二卡三卡四卡| 一区二区三区激情免费视频 | 精品国产精品中文字幕| AV秘 无码一区二| 国产又黄又爽又刺激的免费网址 | 免费国产高清在线精品一区| 国产人与禽zoz0性伦多活几年| 不卡在线一区二区三区视频| 国内极度色诱视频网站 | 国产性三级高清在线观看| 亚洲精品乱码久久久久久不卡| 国产不卡精品一区二区三区|