前情提要
模块化
模块化是把一个大功能分成一个个小的功能, 每一个小功能都是一个模块. 例如: 在之前编写html结构的时候, 所以的标签都是写在一个文件中的, 代码量一多, 脑子就不好过了. 而nodejs提供了模块化系统. 允许我们把一个大的功能拆分成多个小的功能, 然后再把小的功能组合起来.
require导入模块
require作用是导入模块, 默认情况下, 模块与模块之间是独立的. 如果一个模块需要使用另一个模块的功能就需要使用require函数
- 格式:
require(模块名)
例如: 我们可以导入接下来要学习到的fs模块
js
const fs = require("fs");fs文件操作模块
fs模块是nodejs内置的模块, 可以直接使用require导入
js
const fs = require("fs");常用方法
| 方法名 | 作用 | 声明 |
|---|---|---|
| readFile | 读取文件 | readFile(path, BufferEncoding, (err, data) => void): void |
| writeFile | 写入文件 | writeFile(path, data, (err) => void): void |
| mkdir | 创建文件夹 | mkdir(path, (err) => void): void |
| rmdir | 删除文件夹 | rmdir(path, (err) => void): void |
| readdir | 读取文件夹 | readdir(path, (err, files) => void): void |
| exists | 判断文件是否存在 | exists(path, (exists) => void): void |
| stat | 获取文件信息 | stat(path, (err, statObj) => void): void |
| copyFile | 复制文件 | copyFile(srcPath, destPath, (err) => void): void |
| rename | 重命名文件 | rename(oldPath, newPath, (err) => void): void |
| unlink | 删除文件 | unlink(path, (err) => void): void |
| appendFile | 追加文件 | appendFile(path, data, (err) => void): void |
readFile
- 作用: 读取文件
- 声明:
readFile(path, BufferEncoding, (err, data) => void): void path: 路径BufferEncoding: 字符集, 通常是utf-8err: 错误信息data: 读到的数据
js
//path can use relative path or absolute path
fs.readFile("../成绩.txt", "utf-8", (err, data) => {
if(err) throw err;
console.log(data);
})
//使用绝对路径
fs.readFile(path.join(__dirname, "../", "/成绩.txt"), "utf-8", (err, data) => {
if(err) throw err;
console.log(data);
})假设
file.js为当前文件所处目录, 例如: 当前路径为C:\Users\wang\Desktop\nodeJs\axios\file.js,
__dirname--->C:\Users\wang\Desktop\nodeJs\axios__filename--->C:\Users\wang\Desktop\nodeJs\axios\file.js
writeFile
- 作用: 写入文件
- 声明:
writeFile(path, data, (err) => void): void path: 路径, 可以是绝对路径, 也可以是相对路径data: 需要写入到文件的数据err: 错误信息
- 方法只能用来创建文件,不能创建路径。
- 重复用此方法写入同一文件,新写的内容会覆盖之前旧的内容
js
//写入内容 "123"
fs.writeFile("../成绩.txt", "123", (err) => {
if(err) throw err;
console.log("ok");
})mkdir和rmdir
- 作用: 创建文件夹和删除文件夹
- 声明:
mkdir(path, (err) => void): void path: 路径, 可以是绝对路径, 也可以是相对路径err: 错误信息
js
//当前文件的外部添加一个文件夹, 名为test1
fs.mkdir("../test1", (err) => {
if(err) throw err;
console.log("ok");
})
fs.rmdir("/test1", (err) => {
if(err) throw err;
console.log("ok");
})readdir
- 作用: 阅读一个文件夹的目录结构
- 声明:
readdir(path, (err, files) => void): void
js
[
'1.express-session中间件.js',
'cookie-parser.js',
'demo.ejs',
'ejs.js',
'joi.js',
'jwt.js',
'login.js',
'mysql2.js',
'nodemailer.js',
'proxy.js',
'static1.js'
]