• Node.js之path路径模块


    让我为大家介绍一下path路径模块吧!
    什么是path路径模块?
    path 模块是 Node.s 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。

    介绍三个关于path模块的方法:
    path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
    path.basename() 方法,用来从路径字符串中,将文件名解析出来
    path.extname() 方法,可以获取路径中的扩展名部分

    如果要在JavaScript代码中,使用 path 模块来处理路径,则需要使用如下的方式先导入它:

    const path = require("path")
    
    • 1

    一、path.join()

    语法:path.join([…paths])
    …paths路径片段的序列
    返回值:

    代码示例:

    // 导入path模块
    const path = require("path")
    // ../ 会把前面一个抵消
    const pathStr = path.join("/1","/2/3","../","/4")
    console.log(pathStr) //\1\2\4
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:今后凡是涉及到路径拼接的操作,都要使用 path.join() 方法进行处理。不要直接使用 + 进行字符串的拼接
    我来给大家演示一下 + 进行拼接带来的问题

    // 导入fs模块
    const fs = require("fs")
    const path = require("path")
    // __dirname表示当前文件所在的目录 我们一不小心多加了一个.
    fs.readFile(__dirname + "./index.js",(err,data)=>{
        if(err){
            // 错误信息
            console.log(err.message) //ENOENT: no such file or directory, open node.js\path.\index.js'
        }
        console.log("读取成功")
    })
    // 我们使用path.join()
    fs.readFile(path.join(__dirname,"./index.js") ,(err,data)=>{
        console.log(err) //null null代表成功
        console.log("读取成功") //读取成功
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    二、path.basename()

    语法: path.basename(path[,ext])
    path必选参数,表示一个路径的字符串
    ext可选参数,表示文件扩展名
    返回:表示路径中的最后一部分

    代码示例:

    // 导入path模块
    const path = require("path")
    const pathStr = path.basename("../1/2/3.html")
    console.log(pathStr) // 3.html
    const pathStr1 = path.basename("../1/2/3.html",".html")
    console.log(pathStr1) // 3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    三、path.extname()

    语法: path.extname(path)
    path必选参数,表示一个路径的字符串
    返回:返回得到的扩展名字符串

    // 导入path模块
    const path = require("path")
    const pathStr = path.extname("1.html")
    console.log(pathStr) // .html
    
    • 1
    • 2
    • 3
    • 4

    感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

  • 相关阅读:
    【paddle】Vision Transformer(attention)
    Java安装
    PIE-engine 教程 ——sentinel-2影像数据去云分析(山西省为例)
    2023面试知识点二
    Kafka系列之:NoBrokersAvailable和Failed to update metadata after 60.0 secs.
    数据库设计中如何选择主键 (自然键或代理键 )| Part 1
    Spring之简单工厂模式 工厂方法模式
    新闻分析报告:Active Directory 证书服务是企业网络的一大安全盲点
    网易云信IM后端自定义发送消息,前端接收不到,但消息已发送【BUG记录】
    WebSocket 报java.io.IOException: 远程主机强迫关闭了一个现有的连接。
  • 原文地址:https://blog.csdn.net/m0_74577714/article/details/134479028