前面讲到了fs模块,今天讲讲path路径模块
什么是path模块
是node.js官方提供用来处理路径的模块
例如:
parh.join()方法 用来将多个路径片段拼接成一个完整的路径
path.basename()方法 用来从路径字符串中将文件名解析出来
__dirname 当前目录
我们引入路径的时候 有三种方法可以选择
第一种 相对路径
弊端: 如果在其他路径打开就会报错
第二种 绝对路径
弊端: 太繁琐 不利于复用 移植性差
第三种 __dirname
__dirname代表的是当前目录
例子:
javascript
// 导入 fs 模块
const fs = require('fs')
// __dirname 当前目录
// console.log(__dirname);
fs.readFile(__dirname + '/files/1.txt', 'utf-8', function(err, dataStr) {
// 如果存在err 就代表读取失败 如果为null不存在 就代表读取成功
if (err) {
return console.log('文件读取失败:', + err);
}
console.log('文件读取成功,内容是:' + dataStr);
})
实际使用
首先要引入path,才能使用对应的方法
javascript
const path = require('path')
path.join() 拼接路径
语法格式
javascript
path.join([...paths])
// ...paths<string> 路径片段的序列
// 返回值: <string>
代码示例
javascript
const pathStr = path.join('/a','/b/c', '../', './d', 'e')
// 输出pathStr 为 \a\b\d\e
// ../ 为上级目录 会抵消前面的路径
const pathStr2 = path.join(__dirname, './files/1.txt')
// 输出pathSte 为 当前文件目录\files\1.txt
fs.readFile(path.join(__direname, '/files/1.txt'), 'utf8', function(err, dataSte){
if(err) {
return console.log(err.message)
} else {
console.log(dataStr)
}
})
路径拼接最好用 path.join() 去拼接路径 因为使用 '+' 可能会出现多一个 '.' 的情况
path.basename() 获取路径文件名
语法格式
javascript
path.basename(path[, ext])
// path<string> 必选参数 表示路径字符串
// ext<string> 可选参数 表示文件扩展名
代码示例
javascript
const fpath = '/a/b/c/index.html' // 文件的存放路径
var fullName = path.basename(fpath)
// fullName 打印结果为 index.html
var Ext= path.basename(fpath, '.html')
// Ext打印结果为 index
path.extname() 获取路径文件扩展名
语法格式
javascript
path.extname(path)
// path<string> 必选参数 表示路径字符串
// 返回 <string> 返回得到扩展名字符串
代码示例
javascript
const fpath = '/a/b/c/index.html' // 文件的存放路径
var ext = path.extName(fpath)
// ext 打印结果为 .html