全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-15 6 分钟 ✍️ juanwangdev

Node.js path 路径模块

path 模块提供跨平台的路径字符串处理工具,解决不同操作系统路径分隔符差异问题。

引入模块

JavaScript
const path = require('path');

常用方法

path.join 拼接路径

JavaScript
// 自动处理分隔符,生成正确路径
const fullPath = path.join('/home', 'user', 'docs', 'file.txt');
console.log(fullPath);
// Linux: /home/user/docs/file.txt
// Windows: \home\user\docs\file.txt

// 忽略空字符串
path.join('/home', '', 'file.txt'); // /home/file.txt

path.resolve 解析为绝对路径

JavaScript
// 从右向左解析,遇到绝对路径则停止
path.resolve('/home', './user', 'file.txt');
// /home/user/file.txt

path.resolve('/home', '/other', 'file.txt');
// /other/file.txt(遇到绝对路径 /other)

// 无绝对路径时,基于当前工作目录
path.resolve('file.txt');
// /current/dir/file.txt

path.basename 获取文件名

JavaScript
// 获取最后一部分
path.basename('/home/user/file.txt');      // file.txt

// 移除扩展名
path.basename('/home/user/file.txt', '.txt'); // file

path.dirname 获取目录名

JavaScript
path.dirname('/home/user/file.txt');
// /home/user

path.dirname('/home/user/docs/');
// /home/user

path.extname 获取扩展名

JavaScript
path.extname('/home/user/file.txt');   // .txt
path.extname('/home/user/file.tar.gz'); // .gz
path.extname('/home/user/file');        // ''(无扩展名)

path.parse 解析路径对象

JavaScript
const parsed = path.parse('/home/user/file.txt');
console.log(parsed);
// {
//   root: '/',
//   dir: '/home/user',
//   base: 'file.txt',
//   ext: '.txt',
//   name: 'file'
// }

path.format 格式化路径

JavaScript
const pathObj = {
  dir: '/home/user',
  base: 'file.txt'
};
console.log(path.format(pathObj));
// /home/user/file.txt

路径分隔符

JavaScript
// 系统分隔符
console.log(path.sep);
// Linux: '/'
// Windows: '\\'

// 路径分隔符(环境变量等)
console.log(path.delimiter);
// Linux: ':'
// Windows: ';'

// 使用 sep 构建路径
const p = ['home', 'user', 'file'].join(path.sep);

路径规范化

JavaScript
// path.normalize 规范化路径
path.normalize('/home/../user/./file.txt');
// /user/file.txt(解析 .. 和 .)

路径判断

JavaScript
// path.isAbsolute 判断是否为绝对路径
path.isAbsolute('/home/user');  // true
path.isAbsolute('./file.txt');  // false
path.isAbsolute('C:\\file.txt'); // true (Windows)

相对路径

JavaScript
// path.relative 计算相对路径
path.relative('/home/user/docs', '/home/user/images');
// ../images

path.relative('/home/user', '/other/path');
// ../../other/path

实用示例

JavaScript
// 与 __dirname 配合使用
const filePath = path.join(__dirname, 'data', 'config.json');

// 获取父目录
const parentDir = path.dirname(path.dirname(__filename));

// 获取项目根目录
const root = path.resolve(__dirname, '..');

要点总结

  • path.join 拼接路径,自动处理分隔符
  • path.resolve 解析为绝对路径
  • path.basename/dirname/extname 获取路径各部分
  • path.parse 解析为对象,path.format 还原路径
  • 使用 path.sep 代替硬编码分隔符,保证跨平台兼容

📝 发现内容有误?点击此处直接编辑

← 上一篇 Node.js http HTTP 模块
下一篇 → Node.js util 工具函数模块
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库