1. 系统模块
1.1 fs
1. 引入模块:语法:require("node:fs") 'node:'可以省略
注:在node环境下运行使用require("fs")引入;在浏览器中运行使用import.from引入模块
2. 文件读取:
1. fs.readFile(path[,options],callback) path为文件路径;options为编码方式,可选项;callback为回调函数,如果读取失败抛出错误,读取成功后可以打印出读取文件的内容。
2. fs.readFileSync(path[,options])
案例:先打印1,然后data读取成功后再打印2,读取不成功的话就不打印2
const fs = require("fs");
console.log(1);
new Promise((resolve, reject) => {
fs.readFile("./fs.txt", "utf-8", (err, data) => {
if (err) reject(err);
resolve(data);
});
}).then(r=>{
console.log(r);
console.log(2);
}).catch(err=>{
console.log(err);
});
//文件读取方法2
// console.log(fs.readFileSync("./fs.txt", "utf-8"));
3. 文件写入:fs.writeFile(file, data [, option], callback)
fs.writeFile('./fs.txt',"写入fs文件的内容", {
flag: 'a' //在文件中追加内容,不设置时默认为清空文件原来的内容,重新写内容进去
},err=>{ //书写失败,抛出错误
console.log(err);
})
4. 创建目录
单级目录: fs.mkdir(file, data [, option], callback)
创建多级目录:fs.mkdir(file, data, recursive:true, callback)
案例:根据当前日期创建文件夹
//根据当前日期创建文件夹
let date = new Date();
//通过字符串的拼接来设置文件夹名字 格式为20230804
fs.mkdir(`./newImg/${date.getFullYear().toString() + (date.getMonth() + 1).toString().padStart(2,0) + date.getDate().toString().padStart(2,0)}`,{
recursive:true
},(err,path)=>{
console.log(err,path); //null D:\hqjcm\程序\5. nodejs\my\day1\newImg
});
5. 复制文件: fs.copyFileSync(要复制的文件夹地址 , 要复制到的文件路径及其文件名 )
1.2 path
1. 引入模块:语法:require("node:path") 'node:'可以省略
2. 获取当前文件所在目录:path.dirname(要读取的文件的地址)
3. 获取文件的最后一层目录:path.basename(要读取的文件的地址)
案例:
const path = require('path'); //引入
console.log(__dirname); //获取当前文件所在目录D:\hqjcm\程序\第三阶段-DOM\code\day10
//打印结果:D:/hqjcm/程序/第三阶段-DOM/code
console.log(path.dirname("D:/hqjcm/程序/第三阶段-DOM/code/day10"));
console.log(path.dirname(__dirname + "/4-path.js"));
console.log(path.basename("D:/hqjcm/程序/第三阶段-DOM/code/day10")); //打印结果:day10
console.log(path.basename(__dirname + "/4-path.js")); //打印结果:4-path.js
1.3 http——写服务器
1. 引入:require("path")
2. 创建服务器:http.creatServer()
3. 监听request请求,只要客户端发起请求就会执行
4. 设置服务器的监听端口号,server.listen(端口号)
5. 访问本机服务器 http://127.0.0.1:端口号
http://localhost:端口号
http://本机地址:端口号(通过dos窗口输入Ipconfig查看本机地址)
案例:写服务器访问index.html文件
const http = require('http');
const fs = require('fs');
const server = http.createServer();
server.on('request',(request,response)=>{
//读取文件,读取成功后响应给客户端浏览器
fs.readFile('./public/index.html','utf-8',(err,data)=>{
if(err) throw err;
response.end(data)
});
})
server.listen(8000);
需要先运行nodejs,才能访问。运行js文件可以通过dos窗口,也可以通过VSCode中的集成终端