简介-什么是fs文件系统模块
fs 模块是Node.js官方提供的,用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作要求
例如:
- fs.readFile()方法,用来读取指定文件中的内容
- fs.writeFile()方法,用来向指定的文件中写入内容
使用方法
readFile读取文件
const fs = require('fs')
fs.readFile('../../static/person.txt','utf-8',(err,dataStr)=>{
if(err){
return console.log('err:',err.message)
}
console.log('dataStr:',dataStr)
})
writeFile写入文件
const fs = require("fs");
fs.writeFile('../../static/student.txt','小山重叠金明灭',function(err){
console.log('__dirname',__dirname)
if(err){
return console.log('写入文件失败:'+err.message)
}
})
path路径模块
__dirname 获取当前文件所在的目录
const path = require('path')
const fs = require('fs')
const dirname = __dirname;
- path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串
- path.basename(url[,后缀名])方法,用来从路径字符串种,将文件名解析出来
- path.extname获取路径中的文件扩展名
const path = require('path')
const fs = require('fs')
const dirname = __dirname;
const pathStr = path.join(__dirname,'../../','static/person.txt')
fs.readFile(pathStr,'utf-8',function(err,dataStr){
if(err){
return console.log(err.message)
}
console.log(dataStr)
})
const filename = path.basename(pathStr,'.txt')
console.log("filename:::",filename)
const extname = path.extname(pathStr);
console.log("extname:::",extname)
解析html页面并拆分
- 将一个单页面的html文件里面的html代码,js代码,以及css代码抽取出来
- 分别放入同一个文件夹下,index.html,index.js,index.css
- 打开新的index.html文件效果和原来的html文件效果一致
const fs = require('fs')
const path = require("path")
const regexCss = /<style>[\s\S]*<\/style>/;
const regexJS = /<script>[\s\S]*<\/script>/;
const htmlPath = path.join(__dirname,'./','index.html')
fs.readFile(htmlPath,'utf-8',function(err,str){
if(err){
return console.log("读取文件失败:::",err.message)
}
resolveJs(str)
resolveCss(str)
resolveHtml(str)
})
function resolveJs(str){
let jsStr = regexJS.exec(str)[0]
jsStr = jsStr.replace('<script>','').replace('</script>','');
writeFile('index.js',jsStr)
}
function resolveCss(str){
let CssStr = regexCss.exec(str)[0]
CssStr = CssStr.replace('<style>','').replace('</style>','');
writeFile('index.css',CssStr)
}
function resolveHtml(str){
let htmlStr = str.replace(regexJS,'<script src="./index.js"></script>')
htmlStr = htmlStr.replace(regexCss,'<link rel="stylesheet" href="./index.css"></link>')
writeFile('index.html',htmlStr)
}
function writeFile(filename,content){
let pathName = path.join(__dirname,'../../','./static/clock/',filename)
fs.writeFile(pathName,content,function(err){
if(err){
return console.log("文件写入失败::",err.message)
}
})
}
|