[node]node内置模块path

[node]node内置模块path

  • 模块的导入
  • 路径值
    • __filename
    • __dirname
  • path 方法
    • path.resolve([from ...], to)
    • path.parse()
    • path.format()
    • path.basename(path[, ext])
    • path.extname(p)
    • path.dirname(p)
    • path.relative(from, to)
    • path.normalize(p)
    • path.isAbsolute(path)
    • path.join([path1][, path2][, ...])
  • path 属性
  • process
    • process.cwd()
      • 终端执行该命令
      • 文件中调用该命令

path是nodejs的内置模块,提供了处理和转换文件路径的工具

模块的导入

const path = require('path')

index.js文件,文件路径:D:node-test/server/bin/index.js

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

路径值

__filename

输出当前命令的文件路径

console.log(__filename);
//D:node-test/server/bin/index.js

__dirname

输出当前命令的文件所在文件夹路径

console.log(__dirname);
//D:node-test/server/bin/

在AMD、CMD、CommonJs中都可以使用该值,但是在ES6环境下,该值失效

import path from 'path'
const __dirname = path.resolve();

path 方法

path.resolve([from …], to)

将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径(方法将一系列路径或路径段解析为绝对路径)

  • path.resolve(’./’)//当前命令所在项目的根目录
    //D:node-test
  • path.resolve(’…’);//当前项目所在文件夹
    //D:
  • path.resolve(__dirname,’…’)//执行当前命令文件所在文件夹的父级目录
    //D:node-test/server/bin/
  • path.resolve(__dirname,’…/’)//执行当前命令文件所在文件夹的父级目录
  • path.resolve(__dirname, ‘…/…/’)//执行当前命令所在文件夹的父级的父级目录

path.parse()

对路径进行解析

path.parse('C:\\path\\dir\\file.txt');// Returns:
// { root: 'C:\\',
//   dir: 'C:\\path\\dir',
//   base: 'file.txt',
//   ext: '.txt',
//   name: 'file' }

path.format()

path.format(pathObject)

从对象中返回路径字符串,和 path.parse 相反。

path.basename(path[, ext])

path:文件所在路径,ext:文件后缀名,可选参数

path.basename('/foo/bar/baz/asdf/quux.html');
//  'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html');
// 'quux'

path.extname§

返回路径中文件的后缀名,即路径中最后一个’.‘之后的部分。如果一个路径中并不包含’.‘或该路径只包含一个’.’ 且这个’.'为路径的第一个字符,则此命令返回空字符串。

path.extname('/foo/bar/baz/asdf/quux.html');// '.html'
path.extname('/foo/bar/baz/asdf');// ''

path.dirname§

返回路径中代表文件夹的部分,其实就是指定路径的父级文件夹

path.dirname('/foo/bar/baz/asdf/quux.html');// '/foo/bar/baz/asdf'
path.dirname('/foo/bar/baz/asdf');// '/foo/bar/baz'

path.relative(from, to)

用于将绝对路径转为相对路径,返回从from 到 to的相对路径(基于当前工作目录)

path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb');// 返回: '..\\..\\impl\\bbb'
path.relative('C:\test\index.js', 'C:\test\form.js');// "../form.js"

上述第二个例子返回的是"../form.js"而不是"./form.js",两个文件在同一个文件夹,相对路径应该是一个".",也就是"./form.js"才对啊????!!!!,但是实测却不是

而且对于上述的相对路径的说明感觉是反的,API 的参数说明不正确,例如真实案例中:
path1:'C:\test\form.js’在path2:'C:\test\index.js’中的相对路径,是"./form.js",也就是from=path1,to=path2,所以该方法的正常参数解析应该是:

path.relative(to,from),而不是path.relative(from, to)

path.normalize§

规范化路径,注意’…’ 和 ‘.’

path.isAbsolute(path)

判断参数 path 是否是绝对路径

path.join([path1][, path2][, …])

用于连接路径。该方法的主要用途是正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是""

path 属性

属性描述
path.sep平台的文件路径分隔符,’\’ 或 ‘/’。
path.delimiter平台的分隔符, ; or ‘:’.
path.posix提供上述 path 方法,不过总以 posix 兼容的方式交互
path.win32提供上述 path 方法,不过总以 win32 兼容的方式交互

process

process.execPath: 当前执行node的路径(如:/bin/node)

process.cwd()

使用的场景有两种

终端执行该命令

敲击命令的所在路径,即在那个路径下执行的该命令,得到就是该路径

  1. 在cmd终端中,输入node
    进入node的执行终端,如果不在node执行终端会无法识别process.cwd()
  2. 输入命令 process.cwd()
    输出即敲击命令的所在路径

文件中调用该命令

运行该文件的node命令所在目录,同终端一样

node file.js

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240791.shtml

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

相关文章

css@media媒体查询

Media所有参数汇总 width:浏览器可视宽度。 height:浏览器可视高度。 device-width:设备屏幕的宽度。 device-height:设备屏幕的高度。 orientation:检测设备目前处于横向还是纵向状态。 aspect-ratio:检测浏览器可视宽度和高度的比例。(例如:aspect-ratio:16/9) de…

Java研学-Servlet 基础

一 概述 1 介绍 Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动…

会员管理怎么做?

会员管理是企业运营的重要组成部分,它涉及到会员的招募、维护、激励、保留、转化等多个环节。下面,我们将结合具体的案例,详细介绍会员管理的具体做法。 首先,会员的招募是会员管理的第一步 企业需要通过各种方式吸引消费者成为会…

3D数字化系统建设

以3D可视化、数字化技术为基础,其实,很多传统的系统软件都可以重新做一下。 比如:以下这个使用场景:零售门店陈列; 还有,数字化仓储系统,3D数字化供应链系统,3D数字化的生产系统&a…

redis常见数据类型

目录 1.基本全局命令 2.数据结构和内部编码 3.单线程架构 1.基本全局命令 Redis有5种数据结构,但它们都是键值对种的值,对于键来说有一些通用的命令。 KEYS 返回所有满足样式(pattern) 的key。支持如下统配样式。 h?llo 匹配 hello, hallo和hxllo h*llo匹配h…

Linux系统基础知识3

现在主要有以下几种Linux系统: Debian Gentoo Ubuntu Damn Vulnerable Linux 红帽企业级Linux CentOS Fedora Kali Linux Arch Linux 以下是以上Linux系统的特点: Debian:稳定性和安全性高,适用于生产环境和服务器等关键应用场景…

基于SpringBoot实现的前后端分离书店项目,功能:注册登录、浏览商品、热门商品、购物车、购买、地址管理、密码管理等

一、项目简介 本项目主要基于SpringBoot、Mybatis-plus、MySQL、Redis实现的书店管理系统。 本系统是前后端分离的,分别由三个子项目构成:java服务端、用户浏览与购买的前端、管理员管理商品的前端 环境 java 1.8mysql8.0redisvue2.x 管理员子系统功…

Ubuntu 常用命令之 ps 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 ps命令是Linux下的一个非常重要的命令,它用于查看系统中的进程状态。ps是Process Status的缩写,可以显示系统中当前运行的进程的状态。 以下是一些常用的参数 a:显示所有进程(包括…

textile 语法

1、文字修饰 修饰行内文字 字体样式textile 语法对应的 XHTML 语法实际显示效果加强*strong*<strong>strong</strong>strong强调_emphasis_<em>emphasis</em>emphasis加粗**bold**<b>bold</b>bold斜体__italics__<i>italics</i…

string的库函数reserve、resize

系列文章 http://t.csdnimg.cn/u80hL 目录 系列文章[TOC](目录) 一、reserve——请求容量的变化二、resize——操作对象使用的空间 一、reserve——请求容量的变化 改变对象的capacity——他会请求开辟和缩小对象所占的空间&#xff0c;reserve只能操作对象未使用的空间&…

通过bbeat播放器控制吉他效果器

在这个视频中&#xff0c;我们学习如何使用bbeat播放器来控制Fractal FXIII/FM3吉他效果器切换 有了bbeat&#xff0c;我们就可以播放伴奏和视频&#xff0c;控制 midi 设备&#xff0c;而无需在舞台上携带电脑和声卡。bbeat 可播放音频、midi、视频、图像和多轨文件。 它可读…

单例模式实现

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;JavaEE &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 单例模式 1. 什么是单例模式2. 饿汉模式3.…

C语言实现对数组去重算法详解

介绍 在编程中&#xff0c;经常会遇到需要对数组进行去重的情况&#xff0c;即去除数组中重复的元素&#xff0c;使得每个元素都是唯一的。本文将详细解释一个用于去重的C语言函数&#xff0c;并逐步解释其中的每一部分。 代码解析 下面是用于去重的C语言函数&#xff1a; …

C语言易错知识点九(指针(part three))

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ 许久不见&#xff0c;甚是想念&#xff0c;本大忙人已经很久没有更新博客了&#xff0c;我想大概我的粉丝们早…

Linux的/proc/self/学习

文章目录 /proc目录/proc/self的使用 在做SSTI模板注入的CTF题中&#xff0c;发现有师傅提到可以用/proc/self这个目录获取flag&#xff0c;所以也来学习一波主要参考. (我才知道&#x1f601;&#x1f601;&#x1f601;)可以通过/proc/$pid/来获取指定进程的信息&#xff0c…

Kioptrix-3

靶场下载地址 https://download.vulnhub.com/kioptrix/KVM3.rar 信息收集 # Nmap 7.94 scan initiated Thu Dec 21 21:52:25 2023 as: nmap -sn -oN live.nmap 192.168.1.0/24 Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00048s latency). MAC Address:…

[了解]DOS命令相对路径绝对路径

DOS: 磁盘操作系统 操作原理&#xff1a;在cmd控制台输入指令后--->交给DOS系统(接收\解析\执行)--->操作windows系统文件夹目录 dos指令: md d:\\temp md test100 test200 在d盘创建了一个文件夹目录叫temp。 在当前文件夹目录下创建了两个目录test100 test200。 r…

AI绘画中VAE压缩图像

介绍 在Stable Diffusion中,所有的去噪和加噪过程并非在图像空间直接进行,而是通过VAE模块将图像编码到一个低维空间。 这个低维空间的“分辨率”低于原始图像空间,有利于快速地完成加噪和去噪过程。 最后再将编码空间中的噪声表示解码恢复为图像空间,完成去噪或加噪操作。 …

【Element】el-table 使用 el-table-infinite-scroll 插件实现滚动加载

虽然 el 官方提供了 Infinite Scroll 无限滚动 组件 但是却不支持 el-table 组件&#xff0c;这就很难受了&#xff0c;还好已经有大佬写好了插件&#xff0c;并且支持 element-plus/infinite-scroll 组件的所有选项。 el-table-infinite-scroll el-table-infinite-scroll 看…

【数据结构入门精讲 | 第十二篇】考研408、公司面试树专项练习(一)

在上一篇文章中我们介绍了树的知识点&#xff0c;在这一篇中我们将进行树的专项练习。 目录 判断题选择题填空题二叉树的宽度R6-1 是否二叉搜索树 方法介绍&#xff1a; 已知中序及后序&#xff0c;求前序 如后序为DABEC,中序为DEBAC&#xff0c;求前序 则后序倒着写&#xff…