Node
狗焕sama
这个作者很懒,什么都没留下…
展开
-
Node 事件循环和异步IO 进程和线程的关系
什么是事件循环浏览器的事件循环会有一个调用执行栈,只要栈为空的时候才会执行宏任务微任务。并且执行任何一个宏任务之前,会查看微任务队列是否有任务需要执行,也就是说宏任务的函数里如果有微任务的入列,执行下一个宏任务之前会除了执行完当前宏任务的主线程代码后再执行优先把刚刚加入微任务队列的微任务常见的宏任务:ajax,DOM监听常见的微任务:mutation Observer API(提供了监视对DOM树所做更改的能力), queueMicrotask()(自定义微任务)进程和线程的关系进程(原创 2020-12-21 01:22:17 · 276 阅读 · 0 评论 -
Buffer和二进制
为什么要用Buffer类因为服务器端为了做很多的功能,必须直接去操作其二进制的数据,而Buffer可以看作是一个二进制的数组,可以存储很多的二进制。并且在Node中是全局的8位为一个单元,一个单元被称为一个字节(byte)也就是1 byte = 8bit。1kb = 1024byte。1M = 1024kbBuffer可以看作是一个二进制的数组。这个数组的每一项可以保存8位二进制,也就是一个字节。也就是Buffer数组中的每一项对应一个字节的大小Buffer的存储以字符串为例:如图可知每个中原创 2020-12-20 22:48:32 · 1454 阅读 · 0 评论 -
commander配合node的使用 (实现自定义脚手架。。。更新中....)
使用commander的option时只有–xxx (两个必须一致才能通过.xxx获取)例如:#!/usr/bin/env nodeconst {program} = require('commander')program.version(require('./package.json').version)//获取package.json的版本号program.option('--ha <ha>','must input gogo')program.parse(process.a原创 2020-12-20 16:10:50 · 679 阅读 · 1 评论 -
package.json常用配置 npm install原理 npm link
package.json常用配置:name(必填)项目的名称version: (必填)当前项目的版本号main:入口文件(前端因为有webpack的存在基本上用不到,只是作为发布的时候别人下载下来用的时候的入口文件)description: 描述信息author:作者信息(发布时用到)license:开源协议(发布时用到)private:是否为私密(设置为true不可以发布)script:脚本执行我们都知道执行某个js文件的时候我们通过:node index.js来执行index.j原创 2020-12-19 12:51:42 · 2506 阅读 · 1 评论 -
Node的常用内置模块
1.path模块path包括常用方法:path.resolve([from…],to)//from为选填,path.resolve() 该方法将一些的路径解析为绝对路径。会根据是否有/或//或./或…/或反斜杠\来判断如何拼接path.join(path1,path2…)join是把各个path片段连接在一起path.dirname(path)//输出该文件所在的目录的绝对路径path.basename(path)//整个文件的名字path.extname(path)//文件的后缀名pat原创 2020-12-18 10:10:27 · 1015 阅读 · 0 评论 -
使用nvm管理node
首先是安装nvm:在girhub上搜索nvm找到nvm-windows再下载nvm-setup.zipNVM下载:常用指令:nvm list:查看当前已安装的node版本nvm list available:查看官网当前可以按照的版本我们可以按照指定的node版本例如按照15.4.0版本指令:nvm install 15.4.0也可以使用nvm install lts(latest的缩写,目前只支持win32系统) 或者 nvm install latest 来安装最新版本需要注意的是安装可原创 2020-12-17 12:47:47 · 101 阅读 · 0 评论 -
2020-12-16 require的查找规则 模块的加载过程 require和import区别(ES和commonJS区别) commonJS和ES的交互
1. require的查找规则情况一:require的是核心模块情况二:如果是判断为目录总结一下:有后缀找后缀,无后缀找.js>.json>.node。都没有找到当成目录找index.js>index.json>index.node(注意一定是index,main都不可以!)如果都没有就报错xxx not found情况三:require里并非目里但也不是核心模块此时会向当前文件最近一级目录的node_modules里查找是否有X模块,如果没有再向上上级,原创 2020-12-16 00:56:56 · 671 阅读 · 0 评论 -
2020-12-10 JS引擎 浏览器渲染的过程 for循环用let和var的区别
js代码需要JavaScript引擎转换成汇编代码。再从汇编语言转化成0101二进制的机器语言才能被计算机识别浏览器渲染的过程:HTML解析成DOM树。CSS解析成CSSOM成为Attachment(附加)。CSSOM和DOM形成Render渲染树。此时还需生成另外一个layout布局计算每个元素的位置大小等。这样就可以对渲染树进行绘制Painting。然后展示在页面上...原创 2020-12-10 19:35:13 · 195 阅读 · 0 评论 -
2020-12-15 node的架构 global和window全局对象的区别 函数自执行与JS模块化 module.exports和exports的区别
node的架构应用程序(apllication)是由V8引擎(C++编写)来解析JS代码的。然后再通过Bingdings(JS编写)也就是node的api将任务放到LIBUV(C语言编写)进行事件循环,文件系统和网络IO等操作node的应用:我们常见的npm包管理其实就是我们前端开发常用的开发库的node包...原创 2020-12-15 10:10:27 · 527 阅读 · 1 评论