![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
node
文章平均质量分 58
2024路在何方
某行业全球top1企业的前端主管
展开
-
14.node中的转化流Transform
转换流转化流是一种双工流,继承双工流,能够使得可写流与可读流之间相互转化1. 转换流的实现stream.Transform 类原型上继承自 stream.Duplex 并实现其自己版本的 writable._write() 和 readable._read() 方法。 自定义的 Transform 实现必须实现 transform._transform() 方法,也可以实现 transform._flush() 方法。// 转化流——可以吧可写流转换成可读流,可以用于加密 压缩const原创 2021-09-13 21:22:53 · 682 阅读 · 0 评论 -
13.node中的双工流Deplex
双工流双工流特点:既可读,又可写。(读写之间可以没有关系)同时实现了 Readable 和 Writable 的流,即可以作为上游生产数据,又可以作为下游消费数据,这样可以处于数据流动管道的中间部分 rs.pipe(rws1).pipe(rws2).pipe(rws3).pipe(ws);1. Duplex实现由于js没有多继承,但又需要继承Readable和Writable,所以就需要继承Duplex类,而这个类继承了Readable和Writableconst { Dup原创 2021-09-13 21:22:13 · 595 阅读 · 0 评论 -
12.node中的管道流pipe
管道流pipe1. 管道流的使用格式: 可读流.pipe(可写流)const ReadStream = require('./ReadStream')const WriteStream = require('./WriteStream')// rs是一个可读流let rs = new ReadStream('./text.txt', { highWaterMark: 4})// ws是一个可写流let ws = new WriteStream('./copy.txt', {原创 2021-09-13 21:21:20 · 1173 阅读 · 0 评论 -
11. 链表结构和队列
常用的数据结构:队列、栈、链表、树等…队列先进先出,push shift举例: 事件环栈后进先出,push pop举例: 方法调用栈、路由切换、浏览器对而历史记录(两个栈)、判断标签是否闭合1. 栈型结构举例1.1 方法调用栈function a(){ function b(){ function c(){ } c(); } b();}a();错误的说法:每次执行都会创建一个作用域。错误的原因:声明时就定义了作用域,而不.原创 2021-09-01 21:48:52 · 268 阅读 · 0 评论 -
10.文件可写流fs.createWriteStream
1.可写流createWriteStream的使用1.1 创建可写流const ws = fs.createWriteStream(path.resolve(__dirname, 'test.txt'), { flags: 'w', // 写流不能用r,会报错.可以用'a'表示追加 encoding: 'utf8', // 不写默认是utf8 autoClose: true, // 写完是否自动关闭 // start: 0, //从第几个字节开始写 highWaterMark: 3原创 2021-09-01 21:29:11 · 6559 阅读 · 0 评论 -
9.流之可读流与文件可读流
可读流与文件可读流1. 流的概念流是一组有序的,有起点和终点的字节数据传输手段它不关心文件的整体内容,只关注是否从文件中读到了数据,以及读到数据之后的处理流是一个抽象接口,被 Node 中的很多对象所实现。比如fs模块就是基于流来写的,HTTP 服务器request和response对象都是流。一般读取大文件的时候才用流,小文件直接fs.readFile就可以了2. 可读流createReadStream2.1 创建可读流let rs = fs.createReadStream(path原创 2021-08-26 18:07:44 · 402 阅读 · 0 评论 -
8.fs模块知识点
node中常用的fs模块1. fs模块介绍在Node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。在fs模块中,所有的方法都分为同步和异步两种实现。具有sync后缀的方法为同步方法,不具有sync后缀的方法为异步方法。2. 整体读取文件2.1 异步读取语法: fs.readFile(path[, options], callback)options: String | ObjectString: ‘utf-8’Object: {encoding: ‘ut原创 2021-08-25 22:20:43 · 444 阅读 · 1 评论 -
7.Buffer知识点
什么是Buffer?缓冲区Buffer是暂时存放输入输出数据的一段内存。Buffer是十六进制。JS语言没有二进制数据类型,而在处理TCP和文件流的时候,必须要处理二进制数据。所以,其实我们的node是把数据从二进制转换成了十六进制NodeJS提供了一个Buffer对象来提供对二进制数据的操作Buffer是一个表示固定内存分配的全局对象,也就是说要放到缓存区中的字节要提前确定Buffer好比由一个多位字节元素组成的数组,可以有效地在javascript中表示二进制数据什么是字节1字节原创 2021-08-24 21:24:30 · 1199 阅读 · 0 评论 -
6.node中常用的path模块
path模块获取 路规范化路径/路径/文件名/扩展名path.normalize(filepath)path.dirname(filepath)path.basename(filepath)path.extname(filepath)路径组合path.join([…paths])path.resolve([…paths])获取相对路径path.relative(from参照, to)将对象转成字符串路径path.format(pathObject)将字符串原创 2021-08-24 16:47:11 · 497 阅读 · 0 评论 -
5.util工具模块
util工具模块该模块属于核心模块/内置模块,不需要安装可以直接使用util.inheritsutil.isArray 和 util.isFunctionutil.promisify 把方法转化成promise原创 2021-08-24 16:46:23 · 315 阅读 · 0 评论 -
4.node中的eventloop
https://segmentfault.com/a/1190000016278115原创 2021-08-24 16:45:38 · 207 阅读 · 0 评论 -
3.node中的nextTick、setTimeout和setImmediate
梯队setTimeout/setImmediate 第二梯队nextTick 最后一个梯队所以:无论nextTick与setImmediate谁在前谁在后,一定是nextTick先执行第二梯队setTimeout/setImmediate执行顺序谁先谁后都有可能setTimeout/setImmediate/nextTick执行顺序,主要看node的eventLoop,后面会写。nextTick、setImmediate和setTimeout回调函数中的this指向谁?ne原创 2021-08-23 20:44:33 · 714 阅读 · 0 评论 -
2.global 下的属性和方法
global 下的属性和方法globalconsoleprocessBuffer 缓存区(重点) 比如:文件读写都写在Buffer中clearImmediate 清除立即setImmediate 设置立即clearIntervalsetIntervalclearTimeoutsetInterval…1.globalglobal.global.global可以循环使用,没有太多实际意义2.consoleconsole.log 打印日志console.dir 不常用c原创 2021-08-23 20:43:20 · 373 阅读 · 0 评论 -
1.node中的this
nodejs中的thisnode与浏览器中this的区别浏览器中this指向顶层是windownode中this指向顶层是globalnode中的this文件中的内容,其实都是内一个函数包裹的(记住这一条,一切都解开了):function(exports, require, module, __filename, __dirname){ //你文件的代码}文件中的this,默认为{}。默认情况下node在执行的时候,是在文件中执行的,内部会给哲哥文件加一个自执行函数,原创 2021-08-23 20:42:31 · 861 阅读 · 0 评论