Node.js-path文件路径模块以及常用api

引入:Node.js相对路径报错问题

当我们在nodejs文件中使用相对路径有时会出现问题。

例如:

在js所在目录下运行nodejs可以成功读取

javascript this路径 js文件路径的属性_文件名

但是在其他目录运行js文件存在相对路径则会报错。

javascript this路径 js文件路径的属性_绝对路径_02

解决办法:

方法一:使用绝对路径

javascript this路径 js文件路径的属性_文件名_03

问题:移植性差

方法二:使用+号拼接地址

知识点:__dirname指的是当前文件所在文件夹的绝对路径

javascript this路径 js文件路径的属性_javascript_04

所以使用+号拼接则可以拼成绝对路径,这样就可以解决代码移植性的问题。

javascript this路径 js文件路径的属性_javascript_05

但是如果后面/text.txt写作./text.txt,拼接后的地址则为:

C:\Users\flowerheap\Desktop\git\nodejs\nodejs1.\text.txt
报错!

javascript this路径 js文件路径的属性_文件名_06

所以我们引入path模块,来对地址进行操作。

一、path模块介绍

**定义:**path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。

引入path模块:

const path = require('path')

常用API:

path.join(aStr,bStr,cStr...)
//用来拼接字符串,将aStr,bStr,cStr拼接成一个完整的路径。

二、常用API详解

1、join方法(拼接地址)

path.join(aStr,bStr,cStr...)
//接收任意个参数,aStr,bStr,cStr拼接成一个完整的路径。

例子:

const path = require('path')

let x = path.join('/a','./b','/c')

console.log(x);

let y = path.join('/a','./b','../','/c');

console.log(y);

javascript this路径 js文件路径的属性_文件名_07

由图可见,join方法可以消除.的影响,而且也能进行…/文件夹跳转的运算。所以上面那个使用+号添加地址的问题可以用join方法来解决。

2、basename方法(解析文件名,返回路径最后的文件名)

接收参数:

path.basename(url[,filter])
//参数一 url: 必选参数,文件路径
//参数二 filter : 可选参数,用于过滤文件的后缀

例子:

const path = require('path')

let x = path.basename( path.join(__dirname,'./text.txt'))

console.log(x);

let y = path.basename( path.join(__dirname,'./text.txt'),'.txt')

console.log(y);

执行结果:

javascript this路径 js文件路径的属性_文件名_08

3、extname方法(获取文件的扩展名)

接收参数:

path.extname(url)
//一个参数 url:必需参数,文件路径

例子:

const path = require('path')

let x = path.extname(path.join(__dirname,'./text.txt'));

console.log(x);

执行结果:

javascript this路径 js文件路径的属性_javascript this路径_09

三、path三个常用api一起用,获取文件名

const path = require('path')

const url = path.join(__dirname,'./text.txt');

const filter = path.extname(url);

let x = path.basename( url , filter)

console.log(x);

执行结果:

javascript this路径 js文件路径的属性_文件名_10


如有错误或者建议,欢迎大佬指正!