Nodejs可以做什么
Natives modules
Nodejs更适用于IO密集型高并发请求
使用JS实现高效可伸缩的高性能Web服务
常用api
Buffer缓冲区,Buffer让JavaScript 可以操作二进制
IO行为操作的就是二进制数据
流操作配合管道实现数据分段传输
Nodejs中Buffer是一片内存空间
自定义Buffer之split
实现对Buffer拆分
FS是内置的核心模块,提供文件系统操作的API
文件读写与拷贝操作
文件操作API
文件打开与关闭
readFile,writeFile将文件一次性读取与写入,对于大体积的文件不合理。需要一种边读边写的操作方式
大文件读写操作
文件拷贝自定义实现
优化处理
promise写法
CommonJS规范主要应用于Nodejs
CommonJS规范起初是为了弥补JS语言模块化缺陷
CommonJS规范定义模块的加载是同步完成
Nodejs与CommonJS
模块分类
加载流程
缓存优先原则
nodejs事件管理 通过EventEmitter类实现事件统一管理
events与EventEmitter
定义对象间一对多的依赖关系
订阅者将想要订阅的事件监听注册在调度中心,事件被触发的时候,发布者将事件发布在调度中心,之后调度中心统一调度之前订阅者注册的事件
发布订阅要素
完整事件环执行顺序
在浏览器下有两个任务队列,宏任务,微任务
在nodejs中有六个事件队列。
Nodejs诞生之初就是为了提高IO性能
文件操作系统和网络模块实现了流接口
Nodejs中的流就是处理流式数据的抽象接口
流处理数据的优势
Nodejs内置了stream,它实现了流操作对象
nodejs中流的分类
可写流
用于消费数据的流
自定义可写流
可写流数据
自定义双工流
自定义转换流(中间可以对数据进行转换操作,可读与可写流之间是打通的)
nodejs的stream已经实现了可以保证数据平滑流动的背压机制(pipe方法)
文件读取速度大于写入速度,缓存大小有限。可能会导致内存溢出,GC频繁调用,其它进程变慢
writeStream文件可写流简易实现
Net模块实现了底层通信接口
通信过程
http静态服务实现httpServer
网页设计代码中js指的是javascript,是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言,常用来为网页添加各式各样的动态功能。JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。
虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
日常用途:嵌入动态文本于HTML页面对浏览器事件做出响应读写HTML元素在数据被提交到服务器之前验证数据检测访客的浏览器信息控制cookies,包括创建和修改等基于Node.js技术进行服务器端编程。