摘要:工具模塊工具模塊分為,,,,模塊字節(jié)順序字節(jié)順序,稱為端序和尾序,是跨越多字節(jié)程序?qū)ο蟮膬?chǔ)存規(guī)則如果最低有效位在最高位的前面,則為小端序,反過來(lái)為大端序端的起源來(lái)自于格列佛游記,中的水煮蛋的大端和小端。
Node.js工具模塊
node工具模塊分為OS,Path, Net, DNS, Domain模塊
字節(jié)順序,稱為端序和尾序,是跨越多字節(jié)程序?qū)ο蟮膬?chǔ)存規(guī)則
如果最低有效位在最高位的前面,則為小端序,反過來(lái)為大端序
來(lái)自于格列佛游記,中的水煮蛋的大端和小端。
字節(jié)序有什么用讀取的時(shí)候要用,即處理器從內(nèi)存中進(jìn)行讀取的時(shí)候,需要字節(jié)序,是大端序,還是小端序
其中大端序是人類讀寫數(shù)值需要的,大的在前,小的在后。
小端序是機(jī)器的讀法,正好相反
因?yàn)橛?jì)算機(jī)讀取的時(shí)候是從低電位進(jìn)行讀取,計(jì)算的時(shí)候也是從低位進(jìn)行計(jì)算(人類也是這樣)這樣的效率一般會(huì)比較高。
字節(jié)順序對(duì)于單一字節(jié),處理器以相同順序處理預(yù)元(bit),因此單字節(jié)的傳輸和存放是一樣的
對(duì)于多字節(jié),在不同處理器的存放方式有兩種。
最高為字節(jié)儲(chǔ)存在最低的內(nèi)存地址處。下一個(gè)字節(jié)儲(chǔ)存在后面的地址處(即跟高的內(nèi)存地址)
小端序反過來(lái)即可
Path模塊 Domain模塊簡(jiǎn)化代碼的異常處理
該模塊,將多個(gè)處理的模塊分為一組,然后進(jìn)行處理
隱式綁定:把在上下文中定義的變量,自動(dòng)進(jìn)行綁定
顯式綁定:把不在上下文定義的變量,通過代碼進(jìn)行綁定
需要使用一個(gè)emitter.emit http://nodejs.cn/api/events.h...
按照監(jiān)聽器的注冊(cè)順序,同步調(diào)用emitter.removeAllListeners 移出綁定的監(jiān)聽器
http://nodejs.cn/api/events.h...domain.run 在其域的上下文內(nèi),運(yùn)行提供的函數(shù), 所有的都隱式綁定
http://nodejs.cn/api/domain.h...domain.remove 移出監(jiān)聽器
http://nodejs.cn/api/domain.h...
var EventEmitter = require("events").EventEmitter; var domain = require("domain"); // 域 var emitter1 = new EventEmitter(); // 創(chuàng)建一個(gè)監(jiān)聽器的類,這是一個(gè)和監(jiān)聽器有關(guān)的類 // 創(chuàng)建域 var domain1 = domain.create(); domain1.on("err", (err) => { // 綁定一個(gè)錯(cuò)誤域,如果這個(gè)時(shí)候執(zhí)行err事件,則處理回調(diào)函數(shù) console.log("domain1 處理這個(gè)錯(cuò)誤" + err.message); }); // 顯示綁定 domain1.add(emitter1); // 將監(jiān)控器的類和域進(jìn)行綁定 emitter1.on("error", (err) => { // 添加監(jiān)聽器的error事件的回調(diào)函數(shù) console.log("監(jiān)聽器處理錯(cuò)誤" + err.message); }); emitter1.emit("error", new Error("通過監(jiān)聽器來(lái)處理")); // 觸發(fā)error事件,首先運(yùn)行error的回調(diào)函數(shù),接著運(yùn)行new Error事件 emitter1.removeAllListeners("error"); // 移出監(jiān)聽器類綁定的所有的事件 emitter1.emit("error", new Error("通過正常的 domainl來(lái)進(jìn)行處理")) // 由于上一步已經(jīng)移出了監(jiān)聽器,所以通過正常的創(chuàng)建域中的錯(cuò)誤的處理進(jìn)行處理 var domain2 = domain.create(); // 創(chuàng)建一個(gè)新的 domain2 的域 domain2.on("error", (err) => { // 將該域和事件進(jìn)行綁定 console.log("domain2 來(lái)進(jìn)行處理" + err.message); }); // 隱式綁定 domain2.run(() => { // 創(chuàng)建一個(gè)域的運(yùn)行空間 var emitter2 = new EventEmitter(); // 在域的運(yùn)行空間內(nèi)創(chuàng)建一個(gè)新的監(jiān)控器的類 emitter2.emit("error", new Error("由domain2處理")); // 由于監(jiān)控器的類沒有進(jìn)行綁定,所以上下文尋找error錯(cuò)誤的處理,找到第28行,對(duì)于error錯(cuò)誤的處理,運(yùn)行回調(diào)函數(shù) }); domain1.remove(emitter1); // 移出域綁定的錯(cuò)誤 emitter1.emit("error", new Error("由于未進(jìn)行綁定,程序遇到執(zhí)行錯(cuò)誤")); //
PS C:UsersmingmDesktop est> node main.js 監(jiān)聽器處理錯(cuò)誤通過監(jiān)聽器來(lái)處理 events.js:167 throw er; // Unhandled "error" event ^ Error: 通過正常的 domainl來(lái)進(jìn)行處理 at Object.(C:UsersmingmDesktop estmain.js:24:24) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Function.Module.runMain (internal/modules/cjs/loader.js:742:12) at startup (internal/bootstrap/node.js:266:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3) Emitted "error" event at: at EventEmitter.emit (domain.js:455:12) at Object. (C:UsersmingmDesktop estmain.js:24:10) at Module._compile (internal/modules/cjs/loader.js:689:30) [... lines matching original stack trace ...] at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3) PS C:UsersmingmDesktop est>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96339.html
摘要:在源碼中也可以看到,在執(zhí)行之前動(dòng)態(tài)的引入了這些解釋器模塊。因?yàn)檎J(rèn)為如果你要使用,那么一定會(huì)有對(duì)應(yīng)的依賴,這個(gè)模塊就是與同級(jí)的依賴,也就是說(shuō)可以放心的進(jìn)行,大致這樣的結(jié)構(gòu)的位置在這里執(zhí)行腳本以及一個(gè)相反的栗子 NPM是Node.js的包管理工具,隨著Node.js的出現(xiàn),以及前端開發(fā)開始使用gulp、webpack、rollup以及其他各種優(yōu)秀的編譯打包工具(大多數(shù)采用Node.js來(lái)實(shí)...
摘要:博客地址這篇文章是我在眾成翻譯翻譯的一篇文章,一篇的入門指南,原文鏈接的出現(xiàn)使得用寫服務(wù)端應(yīng)用成為可能。你可以看到,這個(gè)過程也安裝了其他的模塊,它們都是的所依賴的模塊。但是,得到的輸出信息會(huì)很冗長(zhǎng),我們可以加上來(lái)精簡(jiǎn)一下輸出。 github 博客地址: https://github.com/zengxiaota... 這篇文章是我在 眾成翻譯 翻譯的一篇文章,一篇 npm 的入門指南,...
摘要:當(dāng)某個(gè)執(zhí)行完畢時(shí),將以時(shí)間的形式通知執(zhí)行操作的線程,線程執(zhí)行了這個(gè)事件的回調(diào)函數(shù)。為了處理異步,線程必須有事件循環(huán),不斷的檢查是否有未處理的時(shí)間。這種處理機(jī)制,稱為事件環(huán)機(jī)制。方面使用第三方模塊。 簡(jiǎn)介 V8引擎本身就是用于Chrome瀏覽器的JS解釋部分,但是Ryan Dahl,把V8搬到服務(wù)器,用于做服務(wù)器的軟件。Node是一個(gè)專注于實(shí)現(xiàn)高性能Web服務(wù)器優(yōu)化的專家,在遇到V8而誕...
摘要:的另一種形式測(cè)試踩坑之路代碼覆蓋率單元測(cè)試的代碼覆蓋率統(tǒng)計(jì),是衡量測(cè)試用例好壞的一個(gè)的方法。 showImg(https://segmentfault.com/img/remote/1460000012564211?w=640&h=280); 項(xiàng)目地址: diana文檔地址: http://muyunyun.cn/diana/ 造輪子的意義 為啥已經(jīng)有如此多的前端工具類庫(kù)還要自己造輪...
摘要:比如,這種模擬并不符合某些邊緣情況。然而,使用,結(jié)果是在引導(dǎo)模塊時(shí),將指向,與使用的行為一致。這將更容易完成代碼庫(kù)的過渡,并使成為可能。 原文作者:Johannes Ewald @Jhnnns 原文鏈接:The state of JavaScript modules 已獲原作者授權(quán)翻譯及發(fā)布 showImg(https://segmentfault.com/img/bVOpwz?w...
閱讀 1080·2021-11-23 09:51
閱讀 2420·2021-09-29 09:34
閱讀 3161·2019-08-30 14:20
閱讀 1070·2019-08-29 14:14
閱讀 3191·2019-08-29 13:46
閱讀 1087·2019-08-26 13:54
閱讀 1643·2019-08-26 13:32
閱讀 1435·2019-08-26 12:23