node - path模块

path 为Nodejs常用的内置模块,主要为了更加方便的处理文件与目录路径.

let path = require('path')

path 模块根据 node 应用程序所在的系统环境不同而呈现不同的默认操作,在windows操作系统中,path 会根据windows的路径规范来操作:

 

1、path.extname(path)

获取path对应得扩展名:

console.log(path.extname('text.config.html'))
// 扩展名 .html

2、path.join([ ...paths ])

paths为string 类型,会有多个路径,返回结果为:系统对应的路径分隔符将这一系列的路径链接到一起:

let r = path.join('/users', 'user', 'u', '/s')
console.log(r) // windows系统输出结果: \users\user\u\s

3、path.resolve([ ...paths ])

参数为多个路径,返回的是 把解析一系列路径成绝对路径:

注意:

(1)从右向左一次拼接,直 到遇到第一个绝对 路径(/xxx)形式的path 才停止,如: path.resolve('/foo', 'users', '/u', 'user'),从右向左依次解析,第一次遇到绝对路径为 '/u',所以不再继续向左拼接,这里与path.join要区别开,最后结果为: /u/user

· 如果匹配到最后,这一系列没找到绝对路径,则会以当前盘符为基准,将当前的路径拼接起来:

// 当前盘符为 i盘, windows系统
let r = path.resolve('/users', 'user')
console.log(r)  输出结果: i:\users\user

(2)如果路径中有 ../xxx,会返回到xxx的上一层目录,然后接着匹配。

(3)空字符串会被忽略。

let r = path.resolve('/users', '/', '', 'u', 'user')
console.log(r) 输出结果: I:\u\user

 (4)path.resolve()可以把路径转化为操作系统识别的分隔符,所以开发中对路径的操作,可以使用该模块进行拼接。

 

4、path.sep

输出不同系统下对应的路径分隔符,下边是在windows系统下输出的结果:

console.log(path.sep) 输出结果为 \

 

5、path.delimiter

输出不同系统下对应的路径分隔符:

·在windows上是 ;

· 在linux 上是

下边是window系统下的环境变量中路径分隔截图,都是以分号分隔:

我们可以使用process.env.PATH 输出系统环境变量,使用split方法,以path.delimiter 进行分隔,这样就不需要考虑项目所在的系统了:

// linux系统中
const path = require('path')
console.log(proccess.env.PATH) // 输出 '/user/bin:/bin:/user/sbin'
console.log(process.env.PATH.split(path.delimiter))
// 结果为 ['/user/bin', '/bin', '/user/sbin']

6、path.dirname()

返回当前path路径的目录名。

如:

const path = require('path')
const p = 'G:\\vue-test\\20210118\\test1.js'
console.log(path.dirname(p))

7、basename(path, [ext])

path.basename( ) 分两种情况:

(1)当只有一个路径参数时:

返回当前path路径最后的 文件名及扩展名。

let path = require("path")
console.log(path.basename('./a/b/user.js')) // 输出 user.js

(2)当有2个参数, 且参数二是文件的扩展名:

只会返回当前path路径的文件名。

let path = require("path")
console.log(path.basename('./a/b/user.js', '.js')) // 输出 user

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值