Node.js-path文件路径模块以及常用api
引入:Node.js相对路径报错问题
当我们在nodejs文件中使用相对路径有时会出现问题。
例如:
在js所在目录下运行nodejs可以成功读取
但是在其他目录运行js文件存在相对路径则会报错。
解决办法:
方法一:使用绝对路径
问题:移植性差
方法二:使用+号拼接地址
知识点:__dirname指的是当前文件所在文件夹的绝对路径
所以使用+号拼接则可以拼成绝对路径,这样就可以解决代码移植性的问题。
但是如果后面/text.txt写作./text.txt,拼接后的地址则为:
C:\Users\flowerheap\Desktop\git\nodejs\nodejs1.\text.txt
报错!
所以我们引入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);
由图可见,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);
执行结果:
3、extname方法(获取文件的扩展名)
接收参数:
path.extname(url)
//一个参数 url:必需参数,文件路径
例子:
const path = require('path')
let x = path.extname(path.join(__dirname,'./text.txt'));
console.log(x);
执行结果:
三、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);
执行结果:
如有错误或者建议,欢迎大佬指正!