Node.js中path模块的使用指南
基本使用
首先需要引入path模块:
const path = require('path');
核心方法详解
1. 路径拼接 - path.join()
path.join()方法用于安全地拼接多个路径片段,自动处理不同操作系统的路径分隔符差异。
const fullPath = path.join('/user', 'documents', 'file.txt');
// Unix: /user/documents/file.txt
// Windows: \\user\\documents\\file.txtconst fullPath1 = path.join('/user/info', '..', 'file.txt');
// ..会退到上一级
// /user/file.txt
2. 解析绝对路径 - path.resolve()
path.resolve()从右向左解析路径为绝对路径,基于当前工作目录。
const absolutePath = path.resolve('src', 'app.js');
// 输出当前工作目录下的绝对路径,如: /home/user/project/src/app.js
3. 获取目录名 - path.dirname()
path.dirname()返回路径的上一级目录。
console.log(path.dirname('/user/docs/file.txt')); // /user/docs
console.log(path.dirname(__dirname)); // 获取上一级目录
4. 获取文件名 - path.basename()
path.basename()返回路径的最后一部分(通常是文件名)。
console.log(path.basename('/user/docs/file.txt')); // file.txt
console.log(path.basename('/user/docs/file.txt', '.txt')); // file
5. 获取扩展名 - path.extname()
path.extname()返回路径中文件的扩展名
console.log(path.extname('index.html')); // .html
console.log(path.extname('index.coffee.md')); // .md
实际应用场景
1. 构建跨平台路径
const configPath = path.join(__dirname, 'config', 'app.json');
2. 获取相对路径
const relativePath = path.relative('/data/orandea', '/data/orandea/test/aaa');
// 输出: test/aaa
3. 路径规范化
const normalizedPath = path.normalize('/foo/bar//baz/asdf/quux/..');
// 输出: /foo/bar/baz/asdf