个人 黑马程序员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目录中。

实现步骤:

  1. 创建两个正则表达式,用来匹配

创建两个正则表达式,用来匹配

//导入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页面成功');})
}

案例的注意点

  1. fs.writeFile() 方法只能用来创建文件,不能用来创建路径
  2. 重复调用 **fs.writeFile()**写入同一个文件,新写入的内容会覆盖之前的内容


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部