Node.js—path模块

news2024/9/19 11:01:03

目录

  • 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.coloradmin.cn/o/433006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux高性能服务器编程|阅读笔记:第2章 - IP协议详解

简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:扎实基础 + 多做笔…

超越ChatGPT:AgentGPT正在将自主AI带到浏览器中

你好,欢迎来到人工智能领域的新时代!今天我们介绍AgentGPT,这是一款最前沿的基于浏览器的平台,旨在革新人工智能的自主性。这项开创性的技术让你能够在舒适的网络浏览器中创建、配置和部署定制化的人工智能代理,以实现…

又涨了?2023全国程序员薪资最新统计(文末附招聘岗位)

大家好,金三银四招聘季还在进行中。刚好最近看到一份 2022 国内程序员薪酬报告,感觉挺有意思的,跟大家分享一下。 在科技迅速发展的时代,各行业对程序员的需求持续增长,程序员作科技市场的“重要基石”,薪…

nodejs+vue 高校校园食堂餐品在线订购网

食堂作为学校的一个重要的部门,为学生提供了用餐的地点,学生可以在食堂享用丰富的餐品,建立一个在校订餐网站,帮助了学生提供一个用餐订餐的系统,也帮助了食堂提供了一个餐品展示的站点。 园的食堂作为一个窗口单位&a…

【nacos配置中心】源码部分解析

启动初始化 SpringApplication.prepareContext applyInitializers 回调ApplicationContextInitializer的initialize方法 getInitializers()从applicationContext获取List<ApplicationContextInitializer<?>> initializers 这个集合是通过SpringApplication的…

Node.js -- Express中间件

1.中间件的概念 1.1 什么是中间件 中间件&#xff08;Middleware&#xff09;,特指业务流程的中间处理环节。 1.2 现实中的例子 1.3 Express中间件的调用流程 当一个请求到达Express服务器中&#xff0c;可以连续调用多个中间件&#xff0c;从而对这次请求进行预处理。 1…

OpenGL入门教程之 深入理解

一、OpenGL简介 OpenGL是一种用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程规范。OpenGL包含一系列可以操作图形和图像的函数&#xff0c;但OpenGL没有实现这些函数&#xff0c;OpenGL仅规定每个函数应该如何执行以及其输出值(类似接口)&#xff0c;所以OpenGL仅是一…

Excel技能之计数求和,让你成为高手之路的机车手

Excel高手之路&#xff0c;开始学习就看到希望。 直接套用&#xff0c;秒变Excel大神。点滴积累&#xff0c;效率飞升。分享给更多的人&#xff0c;一起学习进步。告别加班&#xff0c;让同事刮目相看。 Excel函数&#xff0c;你可以不用&#xff0c;但是不能不知道&#xff…

OpenAI-ChatGPT最新官方接口《安全最佳实例》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(十)(附源码)

Safety best practices 安全最佳实践 前言Use our free Moderation API 使用我们的免费审核APIAdversarial testing 对抗性测试Human in the loop (HITL) 人在回路Prompt engineering 快速工程“Know your customer” (KYC) “了解你的客户”Constrain user input and limit ou…

【Vue3】setup的注意点及watch监视属性的六种情况

一&#xff0c;setup须知 1.1setup的执行时间 1.setup的执行时间要比beforCreate执行要早 export default {name: "Demo",beforeCreate(){console.log(beforeCreate已执行);},setup() {console.log(setup已执行);let person reactive({name: "小明",ag…

Faster RCNN系列——RPN的真值详解与损失值计算

目录 一、RPN真值详解二、RPN预测值三、损失值计算 一、RPN真值详解 RPN的真值分为类别真值和偏移量真值&#xff0c;即每一个Anchor是否对应着真实物体&#xff0c;以及每一个Anchor对应物体的真实偏移值&#xff0c;这两种真值的具体求解过程如下图所示&#xff1a; Anchor生…

【小程序云开发】不用后端也能构建完整的微信小程序

文章目录 什么是微信小程序云函数云数据库HTTP 云函数定时触发云函数总结写在最后 什么是微信小程序云函数 微信小程序云函数是通过微信小程序云开发提供的一种服务器端代码&#xff0c;用于在小程序中进行服务器端的开发和部署。 以下是一些常见的微信小程序云函数类型&#…

AI网站汇总(免费chatgpt)(70个持续增加中)

本文总结了八大类AI工具,包括:聊天AI、绘画AI、AI提示词、图像处理、实用工具、UI设计和3D设计、本地部署AI,汇总AI网站,一键收藏。 目录 一、聊天AI 二、绘画AI 三、AI提示词 四、图像处理

巡检机器人之仪表识别系统

作者主页&#xff1a;爱笑的男孩。 博客简介&#xff1a;分享机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。 如发现文章有误&#xff0c;麻烦请指出&#xff0c;我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666foxmail.c…

什么是LVS

&#x1f618;作者简介&#xff1a;一名99年运维岗位员工。&#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。&#x1f64f;创作不易&#xff0c;动动…

【brtc】视频下行弱网对抗优化 学习笔记

感谢孙健老师和livevideostack学习笔记百度云 音视频实时通信五个部分 1 RTC基础 需要云端服务器参与大量边缘服务器参与采集、前处理(图像处理)、压缩编码音频 3 A 回声消除、增益</

类ChatGPT逐行代码解读(1/2):如何从零起步实现Transformer、ChatGLM

前言 最近一直在做类ChatGPT项目的部署 微调&#xff0c;关注比较多的是两个&#xff1a;一个LLaMA&#xff0c;一个ChatGLM&#xff0c;会发现有不少模型是基于这两个模型去做微调的&#xff0c;说到微调&#xff0c;那具体怎么微调呢&#xff0c;因此又详细了解了一下微调代…

深度学习竞赛进阶技巧 - BLIP使用说明与实战

BLIP-2: 图像到文本的生成器 BLIP-2: Scalable Pre-training of Multimodal Foundation Models for the World’s First Open-source Multimodal Chatbot 1论文摘要 由于大规模模型的端到端的训练&#xff0c;视觉与语言的预训练模型的成本越来越高。本文提出了BLIP-2&#x…

网络原理(IP协议)

目录IP协议IP地址IP 地址由网络和主机两部分标识组成IP 地址的分类广播地址IP多播子网掩码路由IP 地址与路由控制IP 分包与组包什么是IP分片为什么要进行IP分片IP分片是如何组装的路径 MTU 发现IP协议 IP&#xff08;IPv4、IPv6&#xff09;相当于 OSI 参考模型中的第3层——网…

玩转ChatGPT:Auto-GPT项目部署与测评

一、Auto-GPT简介 最近&#xff0c;以ChatGPT为代表的超大规模语言模型火出了圈&#xff0c;各种二次开发项目也是层出不穷。 这周在AI圈炸街的是Auto-ChatGPT&#xff0c;在GitHub上已经61.4K的点赞了。 项目地址&#xff1a;https://github.com/Torantulino/Auto-GPT 用项…