Node.js—path模块

news/2024/10/23 11:24:48/

目录

  • 1、什么是path模块
  • 2、path.resolve 拼接规范的绝对路径 `常用`
  • 3、path.sep 获取操作系统的路径分隔符
  • 4、 path.parse 解析路径并返回对象
  • 5、path.basename 获取路径的基础名称
  • 6、path.dirname 获取路径的目录名
  • 7、path.extname 获得路径的扩展名
  • 8、 path.join()路径拼接

1、什么是path模块

  • path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
  • 我将介绍如下几个较为常用的几个 API:

在这里插入图片描述

2、path.resolve 拼接规范的绝对路径 常用

前面一节说到使用__dirname将路径转化为绝对路径,这样可以避免相对路径产生的 Bug,但是这种拼接出来的路径是不规范的。

举个栗子:

const fs = require('fs')
const path = require('path')
fs.writeFileSync(__dirname+'/index.html','hello')
console.log(__dirname+'/index.html');

输出结果:

G:\前端开发\node.js\path/index.html

可以看出有\/两种符号,这显然是不规范的。

我们使用path.resolve来解决这个问题

console.log(path.resolve(__dirname,'./index.html'));
//也可以这样写
console.log(path.resolve(__dirname, 'index.html'));

输出结果:

G:\前端开发\node.js\path\index.html

如果我们这样写会出现问题:

console.log(path.resolve(__dirname, '/index.html'));

输出结果:

G:\index.html

resolve里面,第一个参数是绝对路径,后面的参数都为相对路径,如果在第二个参数前面加上/符号,则会让第二个参数成为绝对路径。如果后面还有参数则会将这两个进行拼接,形成一个新的绝对路径。

console.log(path.resolve(__dirname, '/index.html','./text'));

输出结果:

G:\index.html\text

3、path.sep 获取操作系统的路径分隔符

  • sep可以获取我们操作系统的路径分隔符,不同的操作系统分隔符也是不一样的。

示例:

console.log(path.sep);

输出结果:

\

在Linux系统里面则是/

4、 path.parse 解析路径并返回对象

我们先来介绍一个新朋友__filename,它能够返回我们文件的绝对路径

console.log(__filename);
//G:\前端开发\node.js\path\path.js

我们来具体看看parse如何使用:

const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
// 需要加\对路径进行转义
console.log(path.parse(pathName));

在这里插入图片描述
返回一个对象。

5、path.basename 获取路径的基础名称

我们来具体看看path.basename如何获取路径的基础名称

示例:

const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.basename(pathName));

输出结果:

path.js

6、path.dirname 获取路径的目录名

我们来具体看看path.dirname如何获取路径的目录名

示例:

const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.dirname(pathName));

输出结果:

G:\前端开发\node.js\path

7、path.extname 获得路径的扩展名

我们来具体看看path.extname如何获得路径的扩展名

示例:

const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.extname(pathName));

输出结果:

.js

8、 path.join()路径拼接

  • 额外补充一点课上没讲到的知识点。

使用path.join()方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下:
path.join([...paths])

示例:

const pathStr = path.join('./平','./步','./青','./云')
console.log(pathStr);

输出结果:

平\步\青\云

注意:如果加上../会将前面的路径删除。
示例:

const pathStr = path.join('./平','./步','../','./青','./云')
console.log(pathStr);

输出结果:

平\青\云

http://www.ppmy.cn/news/45346.html

相关文章

在windows上安装部署cicd

安装步骤 下载gitlab-runner,官网地址如下: https://docs.gitlab.com/runner/install/windows.html在任意位置创建文件夹,并把安装程序放入文件夹中 安装gitlab-runner 注意需要使用管理员权限,打开powershell才能运行 cd C:\Gi…

Android Binder 图文解释和驱动源码分析

前言 最近在学习Binder,之前都是跳过相关细节,通过阅读文章对Binder有了一些认识,但是并没有真正理解Binder。如果要深入理解Framework的代码,就必须要真正理解Binder。 我学习Binder的方法: 一边阅读Gityuan的Bind…

002 学习鸿蒙应用开发ArkTs语言

目录 一.ArkTs语言介绍 1.ArkTs语言概述 2.ArkTs语言特性 二.基本UI描述 1.基本概念 2.UI描述规范 无参数构造配置 有参数构造配置 属性配置 事件配置 子组件配置 三.状态管理 1.基本概念 2.页面级状态管理 State Prop Link Observed和ObjectLink数据管理 P…

《3-链表》

链表 引言: 存储数组需要内存空间连续,当我们需要申请一个很大的数组时,系统不一定存在这么大的连续内存空间。 而链表则更加灵活,不需要内存是连续的,只要剩余内存空间大小够用即可 1.定义 : 「链表 Lin…

Doris集群的安装部署

目录 安装与部署 软硬件配置​ 1、机器选择 2、软件选择 3、环境信息修改和部署架构 4、安装部署Doris 5、启动FE 6、在FE节点启动MySQL客户端 7、在BE节点启动be 8、查看BE状态 8、查看FE状态是否正常 WEBUI 官方建议 安装与部署 该文档主要介绍了部署 Doris 所…

控制语句(if、switch、for、while、foreach)

条件语句(if) 简单if条件语句 if (条件) {// 语句体 }if…else语句 if (条件) {// 语句体1 } else {// 语句体2 }if…else if多分支语句 if (条件1) {// 语句体1 } else if (条件2) {// 语句体2 } else {// 语句体3 }嵌套if语句 if (条件) { if (条…

从工厂普工到Python女程序员,聊聊这一路我是如何逆袭的?

我来聊聊我是如何从一名工厂普工,到国外程序员的过程,这里面充满了坎坷。过去我的工作是在工厂的流水线上,我负责检测电池的正负极。现如今我每天从早上6:20起床,6点四五十分出发到地铁站,7:40到公司。我会给自己准备一…

Web安全之Content Security Policy(CSP 内容安全策略)详解

什么是Content Security Policy(CSP) Content Security Policy是一种网页安全策略,现代浏览器使用它来增强网页的安全性。可以通过Content Security Policy来限制哪些资源(如JavaScript、CSS、图像等)可以被加载,从哪些url加载。…