当前位置: 首页 > 后端技术 > Node.js

node工具模块

时间:2023-04-03 14:46:48 Node.js

Node.js工具模块node工具模块分为OS,Path,Net,DNS,Domain模块位在最高位之前,就是小端,反之亦然。endian的由来来自格列佛游记中煮鸡蛋的bigendian和littleendian。字节序有什么用?读的时候应该用到,就是处理器从内存中读的时候,需要字节序,不管是bigendian还是littleendian。大端是人类需要读取和写入值的,大的在前,小的在后。Little-endian是机器的读取方式。相反,为什么会有little-endian?因为计算机在读的时候从低位开始读,计算的时候从低位开始计算(人类也是这样)。这种效率一般比较好。高的。字节顺序对于单个字节,处理器以相同的顺序处理前置单元(位),因此单个字节的传输和存储是相同的。对于多字节,在不同的处理器中有两种存储方式。在大端顺序中,最高字节存储在最低内存地址。下一个字节存储在以下地址(即较高的内存地址)。小端顺序可以颠倒。Path模块和Domain模块简化了代码的异常处理。该模块将多个处理模块分成一组,然后进行Handle隐式绑定:自动绑定上下文中定义的变量显式绑定:通过代码绑定上下文中未定义的变量,需要使用emitter.emithttp://nodejs.cn/api/events.h...根据监听器的注册顺序,同步调用emitter.removeAllListeners移除绑定的监听器http://nodejs.cn/api/events.h...domain.run在上下文中它的域,运行提供的函数,所有这些都隐式绑定到http://nodejs.cn/api/domain.h...domain.removeoutofthelistenerhttp://nodejs.cn/api/domain.h...varEventEmitter=require('events').EventEmitter;vardomain=require('domain');//域varemitter1=newEventEmitter();//创建一个监听器类,它与监听器类相关//创建域vardomain1=domain.create();domain1.on('err',(err)=>{//绑定一个错误域,如果此时执行了err事件,会处理回调函数console.log('domain1handlesthiserror'+err.message);});//显示绑定domain1.add(emitter1);//绑定监听器的类到域emitter1.on('error',(err)=>{//添加监听器的错误事件的回调函数console.log('监听器处理错误'+err.message);});emitter1.emit('error',newError('通过监听器处理'));//触发错误事件,先运行错误回调函数,再运行新的错误事件emitter1.removeAllListeners('er罗');//移除监听器类绑定的所有事件emitter1.emit('error',newError('Processthroughnormaldomainl'))//由于上一步移除了监听器,所以使用普通域创建处理错误vardomain2=域名.create();//创建一个domain2的新域domain2.on('error',(err)=>{//将这个域与事件绑定结合起来console.log('domain2toprocess'+err.message);});//隐式绑定domain2.run(()=>{//创建域运行空间varemitter2=newEventEmitter();//创建新的监控类emitter2.emit('error',newError('processedbydomain2'))在domain的运行空间中;//由于没有绑定monitor类,所以context正在寻找错误处理,找到第28行,错误处理,运行回调函数});domain1.remove(emitter1);//移除域绑定错误emitter1.emit('error',newError('Theprogramencountedanexecutionerrorbecauseitwasnotbound'));//PSC:\Users\mingm\Desktop\test>nodemain.jslistenerhandleserrors通过监听器来处理events.js:167thrower;//未处理的“错误”事件^Error:由Object.(C:\Users\mingm\Desktop\test\main.js:24:24)在Module._compile(internal/modules/cjs)处的普通域处理/loader.js:689:30)在Object.Module._extensions..js(internal/modules/cjs/loader.js:700:10)在Module.load(internal/modules/cjs/loader.js:599:32)在tryModuleLoad(internal/modules/cjs/loader.js:538:12)在Function.Module._load(internal/modules/cjs/loader.js:530:3)在Function.Module.runMain(internal/modules/cjs/loader.js:742:12)在启动时(internal/bootstrap/node.js:266:19)atbootstrapNodeJSCore(internal/bootstrap/node.js:596:3)Emitted'error'eventat:atEventEmitter.emit(domain.js:455:12)atObject.(C:\Users\mingm\Desktop\test\main.js:24:10)在Module._compile(internal/modules/cjs/loader.js:689:30)[...linesmatchingoriginalstacktrace...]在bootstrapNodeJSCore(internal/bootstrap/node.js:596:3)PSC:\Users\mingm\Desktop\test>