Node.js基础---path路径模块

前面讲到了fs模块,今天讲讲path路径模块

什么是path模块

是node.js官方提供用来处理路径的模块

例如:

parh.join()方法 用来将多个路径片段拼接成一个完整的路径

path.basename()方法 用来从路径字符串中将文件名解析出来

__dirname 当前目录

我们引入路径的时候 有三种方法可以选择

第一种 相对路径

弊端: 如果在其他路径打开就会报错

第二种 绝对路径

弊端: 太繁琐 不利于复用 移植性差

第三种 __dirname

__dirname代表的是当前目录

例子:

javascript 复制代码
// 导入 fs 模块
const fs = require('fs')

// __dirname 当前目录
// console.log(__dirname);
fs.readFile(__dirname + '/files/1.txt', 'utf-8', function(err, dataStr) {
    // 如果存在err 就代表读取失败 如果为null不存在 就代表读取成功
    if (err) {
        return console.log('文件读取失败:', + err);    
    }
    console.log('文件读取成功,内容是:' + dataStr);
})

实际使用

首先要引入path,才能使用对应的方法

javascript 复制代码
const path = require('path')

path.join() 拼接路径

语法格式

javascript 复制代码
path.join([...paths])
//  ...paths<string> 路径片段的序列
//  返回值: <string>

代码示例

javascript 复制代码
const pathStr = path.join('/a','/b/c', '../', './d', 'e')
// 输出pathStr 为  \a\b\d\e
// ../ 为上级目录 会抵消前面的路径

const pathStr2 = path.join(__dirname, './files/1.txt')
// 输出pathSte 为  当前文件目录\files\1.txt 


fs.readFile(path.join(__direname, '/files/1.txt'), 'utf8', function(err, dataSte){
    if(err) {
        return console.log(err.message)
    } else {
        console.log(dataStr)
    }
})

路径拼接最好用 path.join() 去拼接路径 因为使用 '+' 可能会出现多一个 '.' 的情况

path.basename() 获取路径文件名

语法格式

javascript 复制代码
path.basename(path[, ext])

// path<string> 必选参数 表示路径字符串
// ext<string>  可选参数 表示文件扩展名

代码示例

javascript 复制代码
const fpath = '/a/b/c/index.html'  // 文件的存放路径

var fullName = path.basename(fpath)
// fullName 打印结果为 index.html

var Ext= path.basename(fpath, '.html')
// Ext打印结果为 index

path.extname() 获取路径文件扩展名

语法格式

javascript 复制代码
path.extname(path)

// path<string> 必选参数 表示路径字符串
// 返回 <string>  返回得到扩展名字符串

代码示例

javascript 复制代码
const fpath = '/a/b/c/index.html'  // 文件的存放路径

var ext = path.extName(fpath)
// ext 打印结果为 .html
相关推荐
TDengine (老段)2 小时前
TDengine Node.js 与 C# 连接器 — Web 服务与 .NET 集成
大数据·数据库·node.js·c#·.net·时序数据库·tdengine
To_OC4 小时前
对接大模型流式接口,我被一个 ReadableStream 卡了半小时
前端·node.js·llm
特立独行的猫a17 小时前
鸿蒙PC Node.js三方库移植的AI移植框架与社区贡献完整流程
华为·node.js·harmonyos·三方库移植·鸿蒙pc
AI 编程助手GPT17 小时前
Cursor Router 上线后,我用 Node.js 实现了一个可解释的模型路由器
node.js
半个落月21 小时前
用 Node.js 搭建 EPUB 问答助手:从文本切片、向量检索到 RAG
人工智能·node.js
meilindehuzi_a1 天前
Node.js + LangChain.js + Milvus 实战:从 EPUB 入库到《天龙八部》RAG 问答系统
javascript·langchain·node.js
行走的陀螺仪1 天前
从 nvm 到 fnm:更快、更省心的 Node.js 版本管理器迁移指南
rust·node.js·nvm·fnm
安冬的码畜日常1 天前
【工欲善其事】深入理解 Node.js 带并发上限的异步任务批量执行逻辑
javascript·设计模式·node.js·ai编程·异步编程·并发执行
ToolReel2 天前
Node.js 查询 Google Analytics 4 数据:GA Lite API 接入实战
node.js
寒水馨2 天前
Linux下载、安装 Bun v1.3.14(附安装包bun-linux-x64.zip)
linux·javascript·typescript·node.js·bun·运行时·包管理器