目录
一、Node简介
js 需要运行在浏览器或者客户端下,而node 就可以脱离浏览器和客户端运行。
Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境。
1. node下载安装
官网: https://nodejs.org/zh-cn/download/
安装时node会自动配置环境变量,选择想安装的盘符一直下一步就好。
window + r 搜索框输入 cmd 回车输入node -v 查看是否正确安装,出现版本号则安装正确。
可以查看npm版本,npm 是 node 包管理器:
2. 编辑器中运行node
WebStorm:右键点击run运行相应的js文件;
vscode:ctrl + ~ 出现终端,进入要运行的js文件所在的目录路径下输入node + 文件名(不需后缀)。
路径选择的相关操作:cd 打开文件夹 ./文件夹名 …/ 上一层 按tab键补全
二、fs模块
1. 导入模块
fs模块是node内置模块,node中没有 DOM、BOM。node最好使用es6的语法 。es5是2015以前语法,2015 之后 统称为 es6。
//请求到node内置模块方法 fs
const fs = require("fs");
2. 删除文件:
2.1 异步删除文件
unlink(filePathSuffix,callback)
filePathSuffix:文件路径名及后缀名;
callback 回调函数 => 函数(必写);
例1:删除同目录下的文件a.txt
const fs = require("fs")
fs.unlink("./a.txt",() =>{});
回调函数添加报错信息err和数据data:
const fs = require("fs")
fs.unlink("./a.txt",(err, data)=>{
console.log(err, data)
});
正确执行时,输出err为null,data为undefined。
如果目录下没有要删除的文件,将输出错误信息和数据:
2.2 同步删除文件
unlinkSync(filePathSuffix,callback)
区别:小文件用同步,大文件用异步
3. 读取文件
3.1 异步读取文件
readFile(filePathSuffix,callback)
filePathSuffix:文件路径名及后缀名;
callback 回调函数 => 函数(必写);
例2:读取同目录下的a.txt文件并输出
fs.readFile("./a.txt",(err,data)=>{
console.log(err,data);
})
分析:data读取的到的数据是buffer格式为二进制格式,但显示出来为十六进制 。
解决方法:buffer格式转换成字符串通过toString()
fs.readFile("./a.txt",(err,data)=>{
console.log(data.toString);
})
3.2 同步读取文件
readFileSync(filePathSuffix,callback)
4. 写入文件
4.1 异步写入文件
writeFile(filePathSuffix,content[,opation],callback)
filePathSuffix:写入文件地址及后缀
content:写入文件的内容 => buffer String
callback:回调函数
例3:写入”我是程序员”并创建b.txt文件
fs.writeFile("./b.txt", "我是程序员", (err, data) => {
console.log(err, data);
});
向已存在的b.txt文件中追加内容使用{ flag: “a” }:
fs.writeFile("./b.txt", "我是奥特曼", { flag: "a" }, (err, data) => {
console.log(err, data);
});
4.2 同步写入文件
writeFileSync(filePathSuffix,content[,opation],callback)
例4:创建1.html文件并写入< p>test< /p>
fs.writeFileSync("./1.html","<p>test</p>",{flag:"a"},(err,data) => {
console.log(err,data);
});
同步写入文件可用于爬小说。
5. 创建文件夹
5.1 异步创建文件夹
skdir(filePath,callback);
filePath:文件路径及地址
例4:在同目录下创建文件夹test
fs.mkdir("./test",(err,data) =>{});
5.2 同步创建文件夹
skdirSync(filePath,callbaack);
三、总结
引入fs require("fs")
异步执行
fs.unlink(filePathSuffix,callback)
fs.readFile(filePathSuffix,callback)
fs.writeFile(filePathSuffix,content[,option],callback)
// 创建文件夹
fs.mkdir(filePath,callback)
同步执行
fs.unlinkSync(filePathSuffix)
fs.readFileSync(filePathSuffix)
fs.writeFileSync(filePathSuffix,content)
fs.mkdirSync(filePath)