NodeJS学习笔记
~ fs 文件模块:
常用方法有:
1、fs.stat | 检测是文件还是目录
2、fs.mkdir | 创建目录
3、fs.writeFile | 创建写入文件
4、fs.appendFile | 追加文件
5、fs.readFile | 读取文件
6、fs.readdir | 读取目录
7、fs.rename | 重命名/移动文件
8、fs.rmdir | 删除目录
9、fs.unlink | 删除文件
①.使用nodejs引入fs文件模块
1 const fs = require('fs');
1.fs.stat 检测是文件还是目录
其中有两个常用方法
-- isFile() 判断是否为文件 返回值为:Boolean
-- isDirectory() 判断是否为目录 返回值为:Boolean
使用方法:
1 fs.stat('./html', (err, data) => {
2 if (err) throw err;
3 console.log(`是文件:${data.isFile()}`);
4 console.log(`是目录:${data.isDirectory()}`);
5 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
html -----> 手动创建后执行 fs.stat
执行命令:node app.js(下文所有执行结果之前执行命令全部相同)
执行结果:是文件:false
是目录:true
2.fs.mkdir 创建目录:(此目录若是存在则返回err,若不存在则新建目录)
params:1.path:将创建的目录路径
2.mode 目录权限
3.callback 回调函数,传递异常参数err
使用方法:
1 fs.mkdir('./css', (err) => {
2 if (err) throw err;
3 console.log('创建成功');
4 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
├─css -----> 执行后 fs.mkdir
└─html
3.fs.writeFile 创建或写入文件:(此文件若是存在则替换新传入内容,若不存在则新建文件并写入内容)
params:1.filename 将创建或写入的文件名称
2.data 写入的内容
3.options 数组对象(可不写)
.encoding 设置文件编码(默认utf-8)
.mode 设置文件权限(默认438)
.flag 默认值‘w(覆盖)’
4.callback 回调函数,传递异常参数err
使用方法:
1 fs.writeFile('./html/index.html','你好! nodejs',(err)=>{
2 if (err) throw err;
3 console.log('创建写入文件成功!')
4 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
├─css
└─html
index.html -----> 执行 fs.writeFile
4.fs.appendFile 追加文件:(此文件若是存在则追加新传入内容(相当于+=),若不存在则新建文件并写入内容)
params:1.filename 将创建或写入的文件名称
2.data 写入的内容
3.options 数组对象(可不写)
.encoding 设置文件编码(默认utf-8)
.mode 设置文件权限(默认438)
.flag 默认值‘a(追加)’
4.callback 回调函数,传递异常参数err
使用方法:
1 fs.appendFile('./css/base.css','h2{color:blue}',(err)=>{
2 if (err) throw err;
3 console.log('写入并追加文件成功!')
4 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
├─css
│ base.css -----> 执行 fs.appendFile
└─html
└─ index.html
5.fs.readFile 读取文件(默认返回为Buffer类型内容)
params:1.filename 读取文件路径
2.options 数组对象(可不写)
.encoding 设置文件编码(默认Buffer 可设置为utf-8)
3.callback 回调函数,传递异常参数err和data数据
使用方法:
1 fs.readFile('./html/index.html','utf-8', (err, data) => {
2 if (err) throw err;
3 console.log(data)
4 console.log(data.toString()) // 当传入options参数为空时,可以使用toString方法把Buffer转换成string类型
5 });
执行结果:为html目录下index.html文件内容。
6.fs.readdir 读取目录:返回当前(./html)目录下面一级子目录和文件
使用方法:
1 fs.readdir('./html', (err, data) => { // 返回当前(./html)目录下面一级子目录和文件
2 if (err) throw err;
3 console.log(data); //[ 'index.html', 'news_file.html' ]
4 // |./html
5 // | |./js
6 // |index.js
7 // | |index.html
8 // | |news_file.html
9 // console.log(data); // [ 'index.html', 'js', 'news_file.html' ]
10 })
7.fs.rename 重命名/移动文件
params:1.oldPath:老路径
2.newPath:新路径
3.callback:回调函数
使用方法:
1 // |./css
2 // | |base.css
3 // | |aaa.css
4
5 // 1.重命名
6 fs.rename('./css/aaa.css', './css/index.css', (err) => {
7 if (err) throw err;
8 console.log('重命名成功')
9 // |./css
10 // | |base.css
11 // | |index.css
12 })
13
14 // 2.移动文件
15 fs.rename('./css/index.css', './html/index.css', (err) => {
16 if (err) throw err;
17 console.log('移动文件成功')
18 // |./html
19 // | |index.css
20 // | |index.html
21 // | |...
22 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
├─css
│ base.css
│--rename(重命名)--> fs.rename
↓
↓
└ index.css -----> 执行 ②:移动文件 fs.rename
8.fs.rmdir 删除目录
使用方法:
1 fs.rmdir('./aaaa',(err)=>{ // 目录下方有 _文件 或者 _目录 则无法删除
2 if(err) throw err;
3 console.log('删除目录成功')
4 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
│
├─aaaa 手动创建
│ index.html 手动创建
执行结果:
[Error: ENOTEMPTY: directory not empty, rmdir 'D:\Nodejs\day_02_02\aaaa'] {
errno: -4051,
code: 'ENOTEMPTY',
syscall: 'rmdir',
path: 'D:\\Nodejs\\day_02_02\\aaaa'
}
9.fs.unlink 删除文件
使用方法:
1 fs.unlink('./aaaa/index.html',(err)=>{ // 有则删,无则报错
2 if(err) throw err;
3 console.log('删除文件成功')
4 })
文件层级关系(*):
│ app.js -----> 入口文件
│ package.json
│
├─aaaa 手动创建
│ index.html 手动创建
执行结果:删除文件成功
(此时再去删除aaaa目录则可以删除成功)