node模块之path——path.join和path.resolve的区别

node模块之path——path.join和path.resolve的区别

概述

在Node.js中,Path模块提供了一些用于处理文件路径的工具方法,如path.join()path.resolve()。这两个方法都可以用于连接路径和解析相对路径,但是它们有不同的行为和适用场景,因此我们需要了解它们的区别。

path.join()

path.join()方法用于将多个片段路径连接成一个完整路径。它主要用于连接相对路径,返回的路径会根据操作系统的不同而自动调整分隔符,同时消除多余的分隔符。

const path = require('path');

const joinedPath = path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
console.log(joinedPath); // 输出: \foo\bar\baz\asdf

可以看到,path.join()把传入的各个路径片段连接在一起,同时去除了多余的分隔符和含义狗突变的点。

path.resolve()

path.resolve()方法用于将相对路径解析成绝对路径。和path.join()不同,path.resolve()方法需要至少传入一项绝对路径,否则它将以当前工作目录作为第一个绝对路径。

const path = require('path');

const resolvedPath = path.resolve('/foo/bar', './baz');
console.log(resolvedPath); // 输出: \foo\bar\baz

在上面的例子中,我们传入了/foo/bar作为第一个参数,然后将相对路径.baz解析成绝对路径,返回了一个绝对路径。

除此之外,如果某一个参数是绝对路径,path.resolve()方法将会忽略之前的所有参数,只使用当前传入的绝对路径。

const path = require('path');

const resolvedPath = path.resolve('/foo/bar', '/temp/file/');
console.log(resolvedPath); // 输出: \temp\file

在上面的例子中,/temp/file是一个绝对路径,因此之前的传入参数/foo/bar./baz均被忽略,直接返回/temp/file

总结

可以看到,path.join()path.resolve()这两个方法的行为和应用场景是不同的。path.join()主要用于连接相对路径,是将多个路径片段拼接起来,自动去掉多余的分隔符,返回一个路径。而path.resolve()方法则用于将相对路径解析成绝对路径。因此,使用时需要根据自身需求选择恰当的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node模块之path——path.join和path.resolve的区别 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • synergy–跨平台的键鼠共享工具

    Synergy–跨平台的键鼠共享工具 Synergy是一款跨平台的键鼠共享工具,可以让多台计算机共享同一套键盘和鼠标,提高工作效率。本文将介绍Synergy的完整攻略,包括安装、配置和使用方法,以及两个示例说明。 安装 Synergy支持Windows、macOS和Linux等多个平台,可以从官网下载对应平台的安装包进行安装。安装过程比较简单,按提示一步步…

    other 2023年5月8日
    00
  • jmeter设置全局变量与正则表达式提取器过程图解

    JMeter设置全局变量与正则表达式提取器过程图解攻略 JMeter是一款功能强大的性能测试工具,可以模拟多种负载情况对目标系统进行测试。在测试过程中,我们经常需要设置全局变量和使用正则表达式提取器来提取目标系统返回的数据。下面是详细的攻略,包含了设置全局变量和使用正则表达式提取器的过程图解。 设置全局变量 全局变量可以在整个测试计划中使用,方便在不同的线程…

    other 2023年7月29日
    00
  • 详解Java中Object 类的使用

    详解Java中Object类的使用 Java中的Object类是所有类的根类,它提供了一些通用的方法和功能,可以在所有的Java类中使用。以下是关于Java中Object类的使用的详细攻略。 1. equals()方法 Object类中的equals()方法用于比较两个对象是否相等。默认情况下,equals()方法比较的是两个对象的引用是否相等,即是否指向同…

    other 2023年10月15日
    00
  • 8086汇编开发环境搭建和Debug模式介绍(图文详解)

    我来为您详细讲解“8086汇编开发环境搭建和Debug模式介绍(图文详解)”的完整攻略。 环境搭建 软件下载 首先,我们需要下载DOSBox和EMU8086两个软件。其中DOSBox用于实现DOS系统的模拟,EMU8086则是一款用于8086汇编程序开发的IDE(集成开发环境)工具。两个软件下载链接如下: DOSBox下载链接:http://www.dosb…

    other 2023年6月26日
    00
  • SpringBoot解析指定Yaml配置文件的实现过程

    SpringBoot适用于许多不同的应用程序和服务。它使用自己的配置和管理功能,使得开发人员可以轻松快速地构建和部署应用程序。在SpringBoot中,可以使用Yaml文件来管理应用程序的配置,而不是使用传统的.properties文件。 Yaml是一种轻量级的数据序列化语言,它非常易于阅读和编写。SpringBoot的Yaml配置文件是基于Kubernet…

    other 2023年6月25日
    00
  • Win10系统资源管理器经常崩溃重启的原因及解决方法

    Win10系统资源管理器崩溃及解决方法 一、问题描述 Win10系统中的资源管理器经常出现崩溃重启的情况,给用户带来很大的困扰。这种情况一般表现为: 突然出现蓝屏; 界面卡顿; 打开文件夹时卡在“搜索”界面; 窗口不断刷新,变换大小等等。 这种情况会导致使用体验变得非常糟糕,甚至会给用户带来数据损失的风险。因此,我们必须要找到解决方法。 二、原因分析 造成W…

    other 2023年6月27日
    00
  • numpy库的下载及安装(吐血总结)

    NumPy库的下载及安装(吐血总结) NumPy是Python中常用的科学计算库,提供了高效的多维数组对象和各种派生对象,以及用于数组计算的函数。本文将介绍NumPy库的下载及安装的完整略,包括两个示例说明。 步骤一:安装pip 在使用pip安装NumPy之前,需要先安装pip。可以使用以下命令在终端中安装pip: sudo easy_install pip…

    other 2023年5月9日
    00
  • iPhoneXs Max怎么增加手机内存

    iPhone XS Max增加手机内存攻略 如果你想增加iPhone XS Max的手机内存,以下是一些方法和示例说明,供你参考: 1. 使用云存储服务 云存储服务可以帮助你将文件和数据存储在云端,从而释放设备的内存空间。以下是两个示例: iCloud: iCloud是苹果提供的云存储服务,它可以自动备份你的照片、视频、文档等,并将它们存储在云端。你可以在设…

    other 2023年8月2日
    00
合作推广
合作推广
分享本页
返回顶部