Node.js-path模块

Path 模块

path 模块提供了 操作路径 的功能,我们将介绍如下几个较为常用的几个 API

  • path.resolve(...paths)
    将路径片段解析为绝对路径(从右向左拼接,遇到绝对路径停止)
js 复制代码
// 若参数为空,返回当前工作目录(process.cwd())
// 遇到 / 开头的路径会重置为根目录(如 path.resolve('/a', 'b') → /a/b)

console.log(path.resolve('src', 'images/logo.png')); 
// 输出(当前目录为 /project):/project/src/images/logo.png
console.log(path.resolve('/tmp', 'file.txt')); 
// 输出:/tmp/file.txt
console.log(path.resolve('file.txt')); //\player\markdown-md\md\Node.js\file.txt
  • path.sep
    返回路径分隔符,Windows 下是 \,POSIX 下是 /
js 复制代码
console.log(path.sep); // Windows → '\',Linux/macOS → '/'
const customPath = ['dir', 'subdir', 'file.txt'].join(path.sep);
console.log(customPath); // 输出:dir/subdir/file.txt
  • path.parse(path)
    将路径解析为一个对象,包含以下属性:
    解析路径为对象,包含 root、dir、base、ext、name 属性
js 复制代码
const pathObj = path.parse('/dir/target.txt');
console.log(obj); // 输出:{ root: '/', dir: '/dir', base: 'target.txt', ext: '.txt', name: 'target' }
  • path.basename(path , ext)
    获取路径的基础名称(最后一段)
js 复制代码
// ext:可选,移除指定扩展名(如 .html)
console.log(path.basename('/dir1/file.txt')); // 'file.txt'
console.log(path.basename('/dir1/file.txt', '.txt')); // 'file'
  • path.dirname(path)
  • 返回路径的目录名(最后一个分隔符前的部分)
js 复制代码
console.log(path.dirname('/dir1/file.txt')); // '/dir1'
  • path.extname(path)
    返回路径的扩展名(最后一个点后的部分)
js 复制代码
console.log(path.extname('/dir1/file.txt')); // '.txt'
  • path.isAbsolute(path)
    判断路径是否绝对路径(以 / 开头)
js 复制代码
console.log(path.isAbsolute('/dir1/file.txt')); // true
console.log(path.isAbsolute('dir1/file.txt')); // false
  • path.resolve() vs path.join()
方法 特点 示例输出(当前目录:/project)
path.resolve() 返回绝对路径,遇到 / 重置根目录 resolve('src', '/img') → /img
path.join() 仅拼接路径,不转换绝对路径 join('src', '/img') → src/img
  • path.normalize()
    规范化路径,将多个连续的路径分隔符(如 Windows 下的 \)合并为一个
js 复制代码
console.log(path.normalize('/dir1//dir2/../dir3')); // '/dir1/dir3'
console.log(path.normalize('/a//b '));  // '/a/b'
console.log(path.normalize('/a//b/..')); // '/a'
console.log(path.normalize('/a//b/../..')); // '/'

_dirname 与 process.cwd()​​

  • __dirname:当前脚本所在目录(固定值)。
  • process.cwd():进程启动目录(可动态变化
相关推荐
光影少年5 小时前
Express 中间件原理
后端·node.js·express
时速GEO系统6 小时前
初元 AI V1.1 版本升级,首个正式版发布一周・实现生成、部署、上线、优化全流程自动化闭环
人工智能·数据挖掘·node.js
console.log('npc')10 小时前
06 — Model 层:数据模型与操作
前端·后端·node.js·express
右耳朵猫AI11 小时前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js
光影少年13 小时前
Koa 为什么使用洋葱模型
后端·node.js·koa
shmily麻瓜小菜鸡1 天前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
半生过往1 天前
Node.js 多版本管理完全指南
node.js
梦帮科技2 天前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
BreezeJiang2 天前
别把 WebSocket 当成一门新协议学:搞懂"借 HTTP 握手",双端 Demo 和跨域就都通了
websocket·node.js