目录
fs模块
-
fs全拼为 file system 文件系统模块 主要用来 提供 操作文件相关的方法 我们调用这些方法 就可以 很方便的操作文件
使用模块的步骤
1.引入模块
let 变量 = require("模块js文件路径")
-
如果引入内置模块 或 第三方模块 在引入的时候 require中 写的是模块名
-
如果引入的是自定义模块 则需要写入 模块路径
2.变量会接收到 模块暴露出来的对象 对象中 包含该模块 提供的所有方法 我们就可以使用这些方法了
//1.引入fs模块
let fs = require("fs");
//fs变量 将会接收到 fs模块 暴露出来的对象 对象中 包含所有操作文件的方法
//2.使用fs模块的方法 对文件进行操作
fs.方法1()
fs.方法2()
操作文件为主线 讲述这个过程中 简单操作的相关方法
-
打开文件--->编写文件内容--->关闭文件
-
打开文件
-
open/openSync
-
在node中 大部分方法 都有两个 分别是 xxx和xxxSync
-
xxx表示异步方法
-
xxxSync表示同步方法
-
-
同步方法
-
优点:编写比较简便
-
缺点:会阻塞线程
-
-
异步方法
-
优点:不阻塞线程
-
缺点:编写比较复杂
-
-
-
由于打开文件 是一个相对较简单的操作 因此 我们应该使用 同步方法
-
openSync
-
用法:fs.openSync("要打开的文件路径","修饰符")
-
作用:打开指定路径的文件 并根据修饰符 确定被打开的文件可以执行什么操作
-
模式对照表可以在网上自己搜索
-
-
-
编写文件内容
-
writeSync
-
用法:fs.writeSync(fd,"要写入的内容")
-
作用:将内容 写入指定文件中
-
说明:fd是文件id 用来指明要操作的文件 fd就是我们之前打开文件 openSync方法的返回值
-
-
-
关闭文件
-
closeSync
-
用法:fs.closeSync(fd)
-
作用:关闭 指定id的 文件
-
-
fs模块的详细讲解
fs模块操作文件
-
读取文件
-
readFile
-
用法:
-
fs.readFile("要读取的文件路径",function(err,data){ //err 表示错误信息 //data 表示读取到的文件内容 })
-
-
-
readFileSync
-
用法:
-
-
注意:我们在node中 会经常遇到 同步代码 和 异步代码 这时 我们需要知道 同步代码和异步代码的执行顺序
-
js代码从上到下执行
-
如果遇到同步代码 就直接执行 如果遇到异步代码 就先将异步代码 存入内存中指定的一个区域(任务队列) 然后继续向后 执行同步代码
-
直到 执行到代码的最后 所有代码都执行完了 就去内存中的任务队列中 将存在里面的异步代码 按照顺序 一一取出 并执行
-
-
在node中
-
异步代码:定时器 事件 ajax 以及 node的异步方法
-
同步代码:异步代码之外都是同步代码
-
-
-
编写文件内容
-
writeFile
-
用法
-
fs.writeFile("要写入的文件路径","要写入的内容",{flag:"w"},function(err,data){ //err是错误信息 //data是成功信息 })
-
说明:
-
上述方法中 第三个参数 对象 是用来设置修饰符的
-
writeFile方法 有两个修饰符——a和w 默认为w(写入内容的时候 替换原内容) a(在原内容后面追加 本次写入内容)
-
-
-
-
writeFileSync
-
用法
let data = fs.writeFileSync("要写入的文件路径","要写入的内容",{flag:"w"})
-
-
-
读取文件状态
-
stat
-
用法:
-
fs.stat("文件路径/文件夹路径",function(err,data){ //err:错误信息 //data:读取到的文件信息 })
-
读取出来的文件信息对象 具备两个方法——isFile 和 isDirectory
-
fs.stat("文件路径/文件夹路径",function(err,data){ //err:错误信息 //data:读取到的文件信息 console.log(data.isFile())//是文件结果为true 否则 结果为false console.log(data.isDirectory())//是文件夹结果为true 否则 结果为false })
-
-
-
statSync
-
用法:
-
let data = fs.statSync("文件路径/文件夹路径")
-
-
-
-
修改文件名称
-
rename
-
用法:
-
fs.renameFile("原文件路径","新文件路径",(err,data)=>{ //err:错误信息 data:返回值 })
-
作用:使用新文件路径 替换 原本的文件路径
-
-
-
renameSync
fs.renameSync("原文件路径","新文件路径")
-
-
删除文件
-
unlink
-
用法:
-
fs.unlink("原文件路径",(err,data)=>{})
-
作用:删除指定文件路径
-
-
-
renameSync
fs.unlinkSync("要删除的文件路径")
-
fs模块操作文件夹
-
创建文件夹
-
mkdir
-
用法:
-
fs.mkdir("文件夹名",{recursive:true/false},function(err,data){ })
-
作用:创建指定文件夹
-
说明:第二个参数对象 可以不传 如果不传 默认属性值为false
-
属性值为true 表示 可以递归创建
-
属性值为false 表示 不能递归创建
-
-
-
-
mkdirSync
-
用法:
-
fs.mkdirSync("文件夹名",{recursive:true/false});
-
作用:同上
-
说明:同上
-
如果想得到失败或创建成功的信息 可以通过返回值获取
-
-
-
-
读取文件夹内容
-
readdir
-
用法:
-
fs.readdir("文件夹路径",(err,data)=>{ //err:错误信息 data:读取到的文件夹内容 })
-
作用:读取文件夹内容
-
-
-
readdirSync
-
用法:
-
let data = fs.readdirSync("文件夹路径")
-
作用:同上
-
-
-
-
删除文件夹
-
rmdir
-
用法:
-
fs.rmdir("文件夹名",{recursive:true/false},function(err,data){ })
-
作用:删除指定的文件夹
-
说明:第二个参数可以传 也可以不传 默认属性值为 false
-
true:递归删除
-
false:表示不递归删除
-
-
-
-
rmdirSync
-
用法:
-
fs.rmdirSync("文件夹名",{recursive:true/false})
-
作用:同上
-
说明:同上
-
-
-
注意:在删除文件夹的时候 要注意,只能删除空文件夹 如果文件夹有内容 则需要先删除掉文件夹的内容 才能删除文件夹
-
url模块
-
用法:
-
//1.引入 let url = require("url"); //2.方法
-
-
方法
-
url.parse("url地址")
-
作用:将指定的url网络地址 格式化为 对象
-
-
url.parse("url地址",true);
-
作用:将指定的url地址 格式化为 对象 并将对象中的query属性 格式化为对象
-
-
new URL("url地址")
-
作用:将指定的url地址 格式化为对象
-
-
最后URL构造函数 格式化url地址 是不需要依赖url模块的
-
path模块
-
本模块 主要用来处理 路径相关问题
-
用法 let path = require("path")
-
方法
-
path.basename(路径) 常用
-
作用:获取路径字符串中 最后面的 文件名 或 文件夹名
-
-
path.extname(路径) 常用
-
作用:获取路径字符串最后面文件的拓展名(后缀名)
-
-
path.isAbsolute(路径)
-
作用:判断当前路径字符串 是不是 绝对路径 如果是 返回true 否则 返回false
-
-
path.join("路径1","路径2","路径3",...) 常用
-
作用:将所有路径 拼接在一起 组成一个完整路径 返回出来
-
-
path.parse(路径)
-
作用:将路径格式化为对象
-
-
querystring模块
-
1.引入 let qs=require("querystring")
-
方法
-
querystring.parse(查询字符串)
-
作用:将查询字符串 格式化为 对象
-
说明:查询字符串就是我们提交的数据字符串 键名=键值&键名=键值&...
-
-
querystring.stringify(对象)
-
作用:将对象 格式化为 查询字符串
-
-