个人 黑马程序员Node.js学习笔记(三)
个人 黑马程序员Node.js学习笔记(三)
三.path路径模块
01.什么是path路径模块
path模块是Node.js官方提供的、用来处理路径的模块,它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
例如:
**path.join()**方法,用来将多个路径片段拼接成一个完整的路径字符串。
**path.basename()**方法,用来从路径字符串中,将文件名解析出来。
如需使用 则需要用如下方式导入:
const path = require('path')
02.路径拼接
**path.join()**的语法格式
在使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下:
path.join([...paths])
参数解读:
…paths 路径片段的序列
返回值:
path.join()的代码示例
const pathStr = path.join('/a','/b/c','../','./d','e');
console.log(pathStr); //输出\a\b\d\econst pathStr2 = path.join(__dirname,'./files/1.txt');
console.log(pathStr2); //输出 当前文件所处目录\files\1.txt
03.获取路径中的文件名
path.basename()的语法格式
使用 path.basename()方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下:
path.basename(path[,ext])
参数解读:
- path 必选参数,表示一个路径的字符串
- ext 可选参数,表示文件拓展名
- 返回: 表示路径中的最后一部分
path.basename()的代码示例
const fpath = '/a/b/c/index.html'var fullName = path.basename(fpath)
console.log(fullName) //输出index.htmlvar nameWithoutExt = path.basename(fpath,'.html')
console.log(nameWithoutExt) //输出index
04.获取路径中的文件拓展名
path.extname()的语法格式
使用path.extname()方法,可以获取路径中的拓展名部分,语法格式如下:
path.extname(path);
参数解读:
path 必选参数,表示一个路径的字符串.
path.extname()的代码示例
const fpath = '/a/b/c/index.html' const fext = path.extname(fpath)
console.log(fext) //输出.html
05.综合案例-时钟案例
需要实现的功能
将素材下的index.html页面,拆分成三个文件,分别是:
- index.css
- index.js
- index.html
并将三个文件存放到clock目录中。
实现步骤:
- 创建两个正则表达式,用来匹配
创建两个正则表达式,用来匹配
//导入fs模块
const fs=require('fs');
//导入path模块
const path=require('path');const regStyle=/','');//调用fs.writeFile()方法,将提取的样式,写入到当前目录中 index.css的文件里面fs.writeFile(path.join(__dirname,'index.css'),newCSS,function(err){if(err)return console.log('写入CSS样式失败!'+err.message);console.log('写入CSS样式成功');})
自定义resolveJS方法
function resolveJS(htmlStr){//定义处理JS文件的方法//使用正则表达式提取JS文件const r2 = regScript.exec(htmlStr);//将提取出来的JS字符串 去除script标签const newJS = r2[0].replace('','');//将提取出来的JS脚本,写入到index.js文件中fs.writeFile(path.join(__dirname,'index.js'),newJS,err =>{if(err) return console.log('写入JS失败'+err.message);console.log('写入JS成功');})
}
自定义resolveHTML方法
function resolveHTML(htmlStr){const newHTML = htmlStr//使用replace方法把内嵌的CSS和JS替换为外联的link和script标签.replace(regStyle,'').replace(regScript,'')//将替换之后的html代码写入到clock.html文件中fs.writeFile(path.join(__dirname,'colck.html'),newHTML,err =>{if(err) return console.log('写入HTML文件失败!'+err.message);console.log('写入HTML页面成功');})
}
案例的注意点
- fs.writeFile() 方法只能用来创建文件,不能用来创建路径
- 重复调用 **fs.writeFile()**写入同一个文件,新写入的内容会覆盖之前的内容
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
