day3
node应用场景: 高I/O,多并发
I/O
fs模块就是I/O模型的
并发
同一时间段内,多个程序在执行(处于启动与完毕之间)
node是高并发的
node 是单线程执行,用异步替代了多线程
进程
给应用程序分配资源 为运行当中的应用程序提供运行环境,一个应用程序对应一个进程
线程
执行代码, 一个线程在一个时间只能做一件事件,多线程调度起来很麻烦
- 异步:
- 异步非I/O操作 ===> 定时器
- 异步I/O操作 (不会阻塞) ===> readFile
异步&同步
- 异步不会阻塞后边的代码,同步会阻塞后边的代码
一条线程先执行同步的代码,后执行异步的代码
try catch 只能捕获同步代码的异常
异步异常对象和try catch捕获的异常对象是一样的
文件操作(都是成对出现的(+Sync)): 核心模块的方法fs.*
不要同时操作同一个文件
0. access
不光可以判断文件,也可以判断文件夹
1. readFile(如果不写"utf8"编码,会出现buffer机器认识的语言)
2. writeFile( 路径, 内容, 编码格式, 回调函数(1个err参数) )
多次写入会把原来的内容覆盖, 文件不存在的时候会创建文件,但是不会创建文件夹
3. appendFile
追加内容, 文件不存在的时候会创建文件,但是不会创建文件夹
4. mkdir
创建文件夹
5. readdir(err, files)
只会读取指定的子集文件夹,读出来的内容以数组形式展示
6. stat 判断路径
判断这个文件(夹)是否存在,回调函数中有两个参数(err, stats), stats有多个方法,可以判断是否文件及文件夹等等
核心模块path
- path.join方法
- path.basename
path.extname
取文件后缀名