![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Nodejs
文章平均质量分 68
黑山老妖橙
前端开发工程师,小菜,想要成为真正的大神。不仅精还宽,目前在成为精的路上努力着。
展开
-
利用nodejs实现石头剪刀布游戏
需求用户在执行的时候输入‘石头’、‘剪刀’、‘布’,跟系统随机生成的‘石头’、‘剪刀’、‘布’进行比较,最终判断输赢。代码实现新建一个index.js文件利用nodejs全局变量process中的argv来获得用户的输入,但下标0和下标1分别代表node.exe所在位置和执行文件所在位置输入如下代码var userInput = process.argv[process.argv.length-1]var random = Math.random()*3 //产生一个0-3之间的随机数let原创 2021-05-24 19:27:23 · 431 阅读 · 1 评论 -
模拟实现发布订阅者
发布订阅定义了对象间一对多的问题发布订阅的核心组成因为有了消息调度中心,实现发布者与订阅者的解耦。订阅者把自己想要监听的事件注册到调度中心,发布者触发事件的时候会通知调度中心,调度中心通知监听此事件的订阅者进行回调执行发布订阅与观察者模式的区别在哪里?发布订阅者模式中存在调度中心,观察者模式中没有调度中心当状态发生改变时,发布订阅模式无须主动通知,由调度中心通知订阅者模拟一个发布订阅如果我们自己想要实现发布订阅,应该考虑哪些要素?要有一个缓存队列,存放订阅者信息 :ev原创 2021-05-19 09:18:26 · 139 阅读 · 0 评论 -
Nodejs之CommonJS规范(一)
Commonjs规范关于CommonJS规范诞生的目的就是为了弥补浏览器没有模块化缺陷CommonJS是语言层面的规范,是一个超集,当前主要用于NodejsCommonJS规范规定模块化分为引入(通过rrquire导入其他模块)、定义(任意一个文件就是一个模块,具有独立作用域)、标识符(将模块ID传入require实现目标模块定位)三个部分module属性任意js文件就是一个模块,可以使用module属性id:返回模块标识符,一般是一个绝对路径filename:返回文件模块的绝原创 2021-05-12 21:11:47 · 342 阅读 · 0 评论 -
Nodejs之fs文件操作API
fs是内置的核心模块,提供文件系统操作的APIfs模块结构FS基本操作类FS常用API既然讲到了文件系统,就先介绍一下关于系统和文件的相关知识权限位:在当前操作系统内,不同的用户角色对当前文件能够执行的不同操作文件权限分为三种:r:读权限,数字表示4w:写权限,数字表示2x:执行权限,数字表示1操作系统将用户分为了3类文件所有者,一般都是当前用户文件所属组:当前用户的家人其他用户:如访客关于文件权限问题如777代表的意义等,可以参考另一篇博客Nodej原创 2021-05-07 19:10:34 · 396 阅读 · 1 评论 -
Nodejs之Buffer静态方法concat、isBuffer
concat()作用:将多个buffer拼接成一个新的buffer语法Buffer.concat(list[, totalLength])参数list:用于合并的buffer对象数组totalLength:指定合并buffer对象的总长度实例let buf = Buffer.from('今天有沙尘暴')let buf2 = Buffer.from('20210506')console.log(Buffer.concat([buf,buf2],6)) //<Buffer e4原创 2021-05-07 09:31:17 · 619 阅读 · 0 评论 -
Nodejs之Buffer实例方法toString、indexOf、copy
toString():从buffer中提取数据语法buf.toString([encoding[,start[,end]]])参数encoding:使用的编码,默认utf-8start:指定开始读取的索引位置,默认为0end:结束位置,默认为缓冲区的末尾实例let buf = Buffer.from('今天有沙尘暴')console.log(buf.toString()) //今天有沙尘暴console.log(buf.toString('utf-8'))//今天有沙尘暴con原创 2021-05-06 21:01:46 · 1475 阅读 · 0 评论 -
Nodejs之Buffer实例方法fill、write
fill():使用数据填充buffer基础用法:let a = Buffer.alloc(3)a.fill('123')console.log(a.toString()) //123如果buffer长度大于内容,则会反复填充let a = Buffer.alloc(7)a.fill('123')console.log(a.toString()) //1231231如果buffer长度小于内容长度,则填满即可let a = Buffer.alloc(6)a.fill('12345.原创 2021-05-06 19:47:43 · 533 阅读 · 0 评论