path.join 拼接路径、path.resolv"> path.join 拼接路径、path.resolv"> path.join 拼接路径、path.resolv">
Node.js 词条目录
前端Wiki/Node.js/进阶/路径 path

path 常用方法

path 模块的常用方法:path.join 拼接路径、path.resolve 解析成绝对路径、path.dirname/basename/extname 拆解路径、path.parse 一次性拿到 dir/name/ext/base。

join 与 resolve 的区别:join 只拼接不绝对化(结果可能仍是相对路径),resolve 总会返回绝对路径(以 cwd 为基准解析)。取扩展名用 extname,判断后缀时记得 toLowerCase()。

  • join('a','b') → a/b;resolve('a') → /当前目录/a(绝对路径)
  • basename:取文件名;dirname:取目录;extname:取 .扩展名
  • path.parse 一次返回 {root,dir,base,name,ext} 五个字段
JS
const path = require('path');

console.log(path.join('/srv', 'app', 'dist//', 'index.html'));
// /srv/app/dist/index.html    —— 自动清理多余分隔符

console.log(path.resolve('tmp', 'log.txt'));
// /<cwd>/tmp/log.txt          —— 解析为绝对路径

const p = '/srv/app/images/avatar.png';
console.log(path.dirname(p));   // /srv/app/images
console.log(path.basename(p));  // avatar.png
console.log(path.extname(p));   // .png

const { name, ext } = path.parse(p);
console.log(name, ext);         // avatar .png

// 判断后缀的稳妥写法
const isPng = path.extname(p).toLowerCase() === '.png';
本节要点path 工具箱:join 拼接、resolve 绝对化、dirname/basename/extname 三板斧拆路径。