资讯专栏INFORMATION COLUMN

node工具模块

HitenDev / 900人阅读

摘要:工具模块工具模块分为,,,,模块字节顺序字节顺序,称为端序和尾序,是跨越多字节程序对象的储存规则如果最低有效位在最高位的前面,则为小端序,反过来为大端序端的起源来自于格列佛游记,中的水煮蛋的大端和小端。

Node.js工具模块
node工具模块分为OS,Path, Net, DNS, Domain模块

OS 字节顺序

字节顺序,称为端序和尾序,是跨越多字节程序对象的储存规则
如果最低有效位在最高位的前面,则为小端序,反过来为大端序

端的起源

来自于格列佛游记,中的水煮蛋的大端和小端。

字节序有什么用

读取的时候要用,即处理器从内存中进行读取的时候,需要字节序,是大端序,还是小端序
其中大端序是人类读写数值需要的,大的在前,小的在后。
小端序是机器的读法,正好相反

为什么会有小端序

因为计算机读取的时候是从低电位进行读取,计算的时候也是从低位进行计算(人类也是这样)这样的效率一般会比较高。

字节顺序

对于单一字节,处理器以相同顺序处理预元(bit),因此单字节的传输和存放是一样的
对于多字节,在不同处理器的存放方式有两种。

大端序

最高为字节储存在最低的内存地址处。下一个字节储存在后面的地址处(即跟高的内存地址)

小端序

反过来即可

Path模块 Domain模块

简化代码的异常处理
该模块,将多个处理的模块分为一组,然后进行处理
隐式绑定:把在上下文中定义的变量,自动进行绑定
显式绑定:把不在上下文定义的变量,通过代码进行绑定

</>复制代码

  1. 需要使用一个emitter.emit http://nodejs.cn/api/events.h...
    按照监听器的注册顺序,同步调用

    emitter.removeAllListeners 移出绑定的监听器
    http://nodejs.cn/api/events.h...

  2. domain.run 在其域的上下文内,运行提供的函数, 所有的都隐式绑定
    http://nodejs.cn/api/domain.h...

  3. domain.remove 移出监听器
    http://nodejs.cn/api/domain.h...

</>复制代码

  1. var EventEmitter = require("events").EventEmitter;
  2. var domain = require("domain"); // 域
  3. var emitter1 = new EventEmitter(); // 创建一个监听器的类,这是一个和监听器有关的类
  4. // 创建域
  5. var domain1 = domain.create();
  6. domain1.on("err", (err) => { // 绑定一个错误域,如果这个时候执行err事件,则处理回调函数
  7. console.log("domain1 处理这个错误" + err.message);
  8. });
  9. // 显示绑定
  10. domain1.add(emitter1); // 将监控器的类和域进行绑定
  11. emitter1.on("error", (err) => { // 添加监听器的error事件的回调函数
  12. console.log("监听器处理错误" + err.message);
  13. });
  14. emitter1.emit("error", new Error("通过监听器来处理")); // 触发error事件,首先运行error的回调函数,接着运行new Error事件
  15. emitter1.removeAllListeners("error"); // 移出监听器类绑定的所有的事件
  16. emitter1.emit("error", new Error("通过正常的 domainl来进行处理")) // 由于上一步已经移出了监听器,所以通过正常的创建域中的错误的处理进行处理
  17. var domain2 = domain.create(); // 创建一个新的 domain2 的域
  18. domain2.on("error", (err) => { // 将该域和事件进行绑定
  19. console.log("domain2 来进行处理" + err.message);
  20. });
  21. // 隐式绑定
  22. domain2.run(() => { // 创建一个域的运行空间
  23. var emitter2 = new EventEmitter(); // 在域的运行空间内创建一个新的监控器的类
  24. emitter2.emit("error", new Error("由domain2处理")); // 由于监控器的类没有进行绑定,所以上下文寻找error错误的处理,找到第28行,对于error错误的处理,运行回调函数
  25. });
  26. domain1.remove(emitter1); // 移出域绑定的错误
  27. emitter1.emit("error", new Error("由于未进行绑定,程序遇到执行错误")); //

</>复制代码

  1. PS C:UsersmingmDesktop
  2. est> node main.js
  3. 监听器处理错误通过监听器来处理
  4. events.js:167
  5. throw er; // Unhandled "error" event
  6. ^
  7. Error: 通过正常的 domainl来进行处理
  8. at Object. (C:UsersmingmDesktop
  9. estmain.js:24:24)
  10. at Module._compile (internal/modules/cjs/loader.js:689:30)
  11. at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
  12. at Module.load (internal/modules/cjs/loader.js:599:32)
  13. at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
  14. at Function.Module._load (internal/modules/cjs/loader.js:530:3)
  15. at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
  16. at startup (internal/bootstrap/node.js:266:19)
  17. at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
  18. Emitted "error" event at:
  19. at EventEmitter.emit (domain.js:455:12)
  20. at Object. (C:UsersmingmDesktop
  21. estmain.js:24:10)
  22. at Module._compile (internal/modules/cjs/loader.js:689:30)
  23. [... lines matching original stack trace ...]
  24. at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
  25. PS C:UsersmingmDesktop
  26. est>

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96339.html

相关文章

  • 了解可执行的NPM包

    摘要:在源码中也可以看到,在执行之前动态的引入了这些解释器模块。因为认为如果你要使用,那么一定会有对应的依赖,这个模块就是与同级的依赖,也就是说可以放心的进行,大致这样的结构的位置在这里执行脚本以及一个相反的栗子 NPM是Node.js的包管理工具,随着Node.js的出现,以及前端开发开始使用gulp、webpack、rollup以及其他各种优秀的编译打包工具(大多数采用Node.js来实...

    MingjunYang 评论0 收藏0
  • [译]npm入门指南

    摘要:博客地址这篇文章是我在众成翻译翻译的一篇文章,一篇的入门指南,原文链接的出现使得用写服务端应用成为可能。你可以看到,这个过程也安装了其他的模块,它们都是的所依赖的模块。但是,得到的输出信息会很冗长,我们可以加上来精简一下输出。 github 博客地址: https://github.com/zengxiaota... 这篇文章是我在 众成翻译 翻译的一篇文章,一篇 npm 的入门指南,...

    mrcode 评论0 收藏0
  • Node_模块

    摘要:当某个执行完毕时,将以时间的形式通知执行操作的线程,线程执行了这个事件的回调函数。为了处理异步,线程必须有事件循环,不断的检查是否有未处理的时间。这种处理机制,称为事件环机制。方面使用第三方模块。 简介 V8引擎本身就是用于Chrome浏览器的JS解释部分,但是Ryan Dahl,把V8搬到服务器,用于做服务器的软件。Node是一个专注于实现高性能Web服务器优化的专家,在遇到V8而诞...

    zero 评论0 收藏0
  • 尝试造了个工具类库,名为 Diana

    摘要:的另一种形式测试踩坑之路代码覆盖率单元测试的代码覆盖率统计,是衡量测试用例好坏的一个的方法。 showImg(https://segmentfault.com/img/remote/1460000012564211?w=640&h=280); 项目地址: diana文档地址: http://muyunyun.cn/diana/ 造轮子的意义 为啥已经有如此多的前端工具类库还要自己造轮...

    zhichangterry 评论0 收藏0
  • JavaScript 模块化现状

    摘要:比如,这种模拟并不符合某些边缘情况。然而,使用,结果是在引导模块时,将指向,与使用的行为一致。这将更容易完成代码库的过渡,并使成为可能。 原文作者:Johannes Ewald @Jhnnns 原文链接:The state of JavaScript modules 已获原作者授权翻译及发布 showImg(https://segmentfault.com/img/bVOpwz?w...

    draveness 评论0 收藏0

发表评论

0条评论

HitenDev

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<