1.什么是系统模块
Node运行环境提供的API.因为这些API都是以模块化的方式进行开发的,所以我们又称Node运行环境提供的API为系统模块
2.系统模块fs文件操作
f: file文件,s: system系统,文件操作系统。 const fs = require ('fs') ;
读取文件内容
fs. reaFile('文件路径/文件名称'[, '文件编码'],callback) ;
// 1.通过模块名字对模块进行引用
const fs = require('fs');
// 2.通过模块内部的readFile读取模块内容
// fs. reaFile('文件路径/文件名称'[, '文件编码'],callback) ;
fs.readFile('./01-hello.js', 'utf-8', (err, doc) => {
// err是一个对象,包含错误信息 如果文件读取出错,返回err
// 如果文件读取正确,err 是 null
// doc是文件读取的结果
console.log(err);
console.log(doc);
})
注意:
-
读取文件是硬盘的操作,需要耗时,我们需要回调函数的方式获取文件读取的结果
-
这个回调函数包含两个参数 err,doc
-
err是一个对象,包含错误信息 如果文件读取出错,返回err,错误信息
-
如果文件读取正确,err 是 null,返回doc
-
doc是文件读取的结果
写入文件内容
fs.writeFile('文件路径文件名称",'数据',callback);
const content ='<h3>正在使用fs.writeFile写入文件内容</h3>';
fs.writeFile('../index.html', content, err => (
if (err != mul1) {
console.log (err);
retun;
}
}
console.log('文件写入成功');
}) ;
如果写入路径文件不存在,系统会自动在该路径开辟一个文件
3.系统模块path路径操作
为什么要进行路径拼接
-
不同操作系统的路径分隔符不统一
-
/public/uploads/avatar
-
Windows上是 /
-
Linux上是/
4.路径拼接语法
path.join('路径','路径',...)
//导入path模块
const path = require('path') ;
//路径拼接
let finialPath = path.join('itcast', 'a', 'b','c.css') ;
//输出结果itcastac.css
console.log (finialPath) ;
5.相对路径VS绝对路径
-
大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
-
在读取文件或者设置文件路径时都会选择绝对路径
-
使用__dirname获取当前文件所在的绝对路径
-
requrie方法中的路径可以使用相对路径
const fs = require('fs');
const path = require('path');
console.log(path.join(__dirname));
console.log(path.join(__dirname, '01-hello.js'));
// __dirname获取当前文件所在的绝对路径
fs.readFile(path.join(__dirname, '01-hello.js'), 'utf-8',(err, doc) => {
console.log(err);
console.log(doc);
})