nodejs path.resolve与path.join如何使用

简介: nodejs path.resolve与path.join如何使用

目录


前言


之前觉得很简单没有记录,果不其然,忘了,还是浅记一下path.resolve与path.join如何使用,毕竟文件中各种乱七八糟的路径位置一直都容易让人混乱。


path.resolve


无参数时


path.resolve()可以得到当前工作路径,也就是编写path.resolve()代码的js文件所在位置。


CommonJS模块可以通过__dirname获得相同值,也是当前工作路径位置。


ES6模块不支持__dirname,因此ES6使用__dirname得先声明。

import path from 'path'
const __dirame = path.resolve()

有参数时


看成从当前路径开始执行cd操作,且跳转目录允许不存在。

假设我文件当前路径开始为C:\Users\user\Desktop。

在C:\Users\user\Desktop上执行cd /跳转绝对路径会回到c盘上,也就是根目录。

console.log(path.resolve('/'))// C:\

1

在C:\Users\user\Desktop上执行cd /会回到c盘C:\上,再执行cd /test又是绝对路径会到C:\test,最后执行cd /path还是绝对路径结果为C:\path,我们发现只要是绝对路径,前面的跳转就没什么意义了,path.resolve('/','/test','/path')等同于path.resolve('/path'),以后我们可以从最后一个绝对路径开始看,前面直接忽略。

console.log(path.resolve('/','/test','/path'))// C:\path

在C:\Users\user\Desktop上执行cd test会到C:\Users\user\Desktop\test,再执行cd path又会到C:\Users\user\Desktop\test\path,注意:即使test、path文件夹不存在,返回的仍然是这个。

console.log(path.resolve('test','path'))// C:\Users\user\Desktop\test\path

path.join


  1. path.join只是返回字符串路径的拼接,只会拼接出看起来规范合理的路径,因此结合两个字符串时,下面三种情况结果都一样。
console.log(path.join('/test','./path'))// \test\path
console.log(path.join('/test','/path'))// \test\path
console.log(path.join('/test','path'))// \test\path
  1. 个人认为path.join没有很合理容易揣摩的规则,多种情况结果一致容易产生误解,因此更建议使用path.resolve。
相关文章
|
11月前
|
存储 前端开发 JavaScript
深入理解 ECMAScript 2024 新特性:Promise.withResolvers
ECMAScript 2024 引入了 `Promise.withResolvers`,简化了手动创建 `Promise` 时管理 `resolve` 和 `reject` 的复杂性。本文详细介绍其设计背景、使用方式,并通过多个实际案例展示其优势。该方法减少了代码冗余和潜在错误,使异步任务管理更加直观和简洁。未来,这一特性有望为前端开发带来更多灵活性和便利性。
245 37
|
传感器 负载均衡 物联网
MQTT v5共享订阅是怎么回事?如何使用共享订阅提高消息订阅的灵活性和可伸缩性?
MQTT v5共享订阅是怎么回事?如何使用共享订阅提高消息订阅的灵活性和可伸缩性?
992 1
|
定位技术 开发工具 Python
代码让微信开屏地球转起来
这段内容介绍了如何使用Python制作一个动态旋转的地球图像,类似于微信启动画面中的地球。文章详细描述了所需准备的三个素材(地球表面、云图和微信地球的抠图),并解释了通过调整云层和地面的旋转速度来实现自然的相对运动效果的基本原理。文中还提供了一个GIF压缩工具的链接,以及部分代码示例。此外,文章最后提到了一些Python学习资源,包括学习路线、开发工具、视频教程、实战案例、练习题和面试资料。
218 0
|
小程序 JavaScript Java
寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)
寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)
101 0
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之DataWorks补数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
187 1
|
JavaScript 前端开发 开发工具
new Vue() 发生了什么?
new Vue() 发生了什么?
97 1
|
人工智能 Java 定位技术
3D寻路系统NavMesh-服务端篇
3D寻路系统NavMesh-服务端篇
333 0
|
存储 编解码 算法
医学影像系统【简称PACS】源码
医学影像系统【简称PACS】源码
203 0
|
Linux
CentOS开机自动登陆root用户
CentOS开机自动登陆root用户
860 0
|
JSON 安全 关系型数据库
PostgreSQL的优势:为何它成为主流数据库管理系统
PostgreSQL的优势:为何它成为主流数据库管理系统
4280 0