一.NodeJS
NodeJS的优势:
跨平台、体积小、速度快、开源免费、非阻塞异步I\O、单线程处理高并发、
二、常用doc命令
cd : 切换路径 …/ ./ /
dir : 查看当前路径下的所有文件和文件夹
mkdir : 创建文件夹
dir.> : 创建文件
del : 删除文件
rmdir : 删除文件夹 空文件夹 /q静默删除 /s强制删除
cls : 清屏
三.Node基础语法
Node和原生JS的不同点是:
1.Node有服务器
2.Node可以进行文件流操作
3.Node基于模块开发
四.事件驱动
1.概念
node核心API构建用的是异步事件驱动架构,其中某些类型的对象又称触发器(emitter)。会触发命名事件来调用函数,又称监听器。所有能触发的事件对象都是EventEmitter类的实例
这些对象有一个 eventEmitter.on(函数)用于一个或这个多事件绑定到命名事件中
events模块中只提供了一个对象 events.EventEmitter, 核心就是监听与触发
2.参数使用
五.模块**
1.概念
ES5中不支持原生的模块化 通过script引过来,Node为了对模块进行管理 引入了CommonJs规范
模块的引用:使用 require()方法
Node在js编写的内容,都是运行在一个独立的函数中,外部的模块 无法访问 只有暴露之后 才能进行访问、
模块主要分为三种
- 核心模块
- 自定义模块
- 第三方模块
2.核心模块
核心模块就是我们在安装好NodeJS之后,程序给我们自带的模块,直接引入就行
常见的核心模块有 fs events http path URL querystring
3.第三方模块
第三方模块就是我们核心模块中不存在的,需要下载才能使用,没有下载的话模块不存在
如果想使用第三方模块 那么我们需要进行下载 第三方模块管理工具叫做npm
六、NPM
1.NPM概念
NPM是包管理工具 ,如果说CommonJS包规范是理论,NPM就是其中一种实践。
对于Node而言,NPM帮助其完成了第三方模块的发布、安装和依赖等
借助NPM Node与第三方模块之间形成了很好的一个生态系统
2.NPM使用
npm -v 查看npm的版本
npm version 查看所有模块的版本
npm init 初始化项目(创建package.json) 下载模块之前必须初始化
npm i/install 包名 安装指定的包 @版本号,不加版本默认为最新
npm i/install 包名 --save 安装指定的包并添加依赖 运行依赖
npm i/install 包名 --save-dev 安装指定的包并添加依赖 开发依赖
npm i/install 包名 -g 全局安装(一般都是一些工具)
npm i/install 安装当前项目所依赖的包
npm s/search 包名 搜索包
npm uninstall 包名 卸载包
npm r/remove 包名 删除一个包
模块下载之前必须进行初始化
模块的下载不是全局下载,一般情况下不会使用全局下载
下载之后只能在该文件夹及其子文件夹中进行使用
3.自定义模块
自定义模块 是我们自己定义的JS文件 需要我们使用
和ES6的模块化差不多 都需要进行暴露 引入
1.暴露
暴露有三种方式
exports.属性 || 方法
module.exports.属性 || 方法
module.exports = { 属性,方法}
module.exports和exports之间的区别
严格上老说exports和module.exports之间没有任何区别 堆栈空间都是相等的,但是 如果说 我们这两种方法同时使用 那么module.exports会将exports暴露的数据全部覆盖掉
2.引入
使用require进行引入,引入过来的是一个对象
注意 :引入的是自定义模块 那么必须加上路径,即使是当前路径 那么我们也不能省略./
七.Buffer
1.概念
Buffer结构和数组非常像,操作的方法也相似,数组中不能存储二进制的文件,而buffer专门存储二进制的数据。
buffer在全局作用域,不用引入直接使用。buffer中存储的是二进制的数据 ,显示的时候是以16进制显示。
buffer中每个元素从00-ff 、0-255。buffer 中的每个元素占用内存的一个字节(8比特)
关系:8bt = 1B 1024B = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1PB
一个汉字不是一个字节 是三个字节,buffer大小一旦确定 不能修改 buffer是对底层内存的直接操作
2.方法
Buffer.from(str) 将一个字符串转换成buffer
buf.toString(); 将缓冲区的数据 转成字符串