NodeJs简明教程将从零开始学习NodeJs相关知识,助力JS开发者构建全栈开发技术栈!linux
本文是NodeJs简明教程的第五篇,将介绍NodeJs path模块相关的基本操做。macos
path 模块提供用于处理文件路径和目录路径的实用工具。windows
注意:path模块只是处理文件路径,说白了就是字符串处理,跟文件系统无关工具
path.basename() 方法返回 path 的最后一部分,相似于 Unix 的 basename 命令。 尾部的目录分隔符将被忽略。学习
返回带扩展名ui
const path = require('path');
console.log(path.basename('/usr/local/a.txt'))
// 输出 a.txt
复制代码
返回不带扩展名spa
const path = require('path');
console.log(path.basename('/usr/local/a.txt','.txt'))
// 输出 a
复制代码
path.dirname() 方法返回 path 的目录名,相似于 Unix 的 dirname 命令。 尾部的目录分隔符将被忽略。 path.extname() 方法返回 path 的扩展名,从最后一次出现 .(句点)字符到 path 最后一部分的字符串结束。 若是在 path 的最后一部分中没有 . ,或者若是 path 的基本名称(参阅 path.basename())除了第一个字符之外没有 .,则返回空字符串。code
const path = require('path');
console.log(path.dirname('/usr/local/a.txt'))
// 输出 /usr/local
复制代码
path.extname() 方法返回 path 的扩展名,从最后一次出现 .(句点)字符到 path 最后一部分的字符串结束。cdn
const path = require('path');
console.log(path.extname('/usr/local/a.txt'));
// 输出 .txt
复制代码
path.isAbsolute() 方法检测 path 是否为绝对路径。server
const path = require('path');
// linux || macosx
console.log(path.isAbsolute('/usr/local')); // 输出 true
console.log(path.isAbsolute('usr/local')); // 输出 false
// windows
console.log(path.isAbsolute('//server')); // 输出 true
console.log(path.isAbsolute('\\\\server')); // 输出 true
console.log(path.isAbsolute('c:\windows')); // 输出 true
console.log(path.isAbsolute('foo/bar')); // 输出 false
复制代码
path.join() 方法使用平台特定的分隔符做为定界符将全部给定的 path 片断链接在一块儿,而后规范化生成的路径。 零长度的 path 片断会被忽略。 若是链接的路径字符串是零长度的字符串,则返回 '.',表示当前工做目录。
const path = require('path');
console.log(path.join('/a','b','c','..')); // 输出 /a/b
console.log(path.join('.','a','b','..','c')); // 输出 a/c
复制代码
path.parse() 方法返回一个对象,其属性表示 path 的重要元素。 尾部的目录分隔符将被忽略。 返回对象属性以下: dir 目录 root 根目录 base 带扩展名的文件名或者目录名(最后一级是目录的状况下) name 文件名(不带扩展名)或目录名 ext 文件扩展名(若是是目录则为空字符串)
const path = require('path');
path.parse('/home/user/dir/file.txt');
// 返回:
// { root: '/',
// dir: '/home/user/dir',
// base: 'file.txt',
// ext: '.txt',
// name: 'file' }
复制代码
path.relative() 方法根据当前工做目录返回 from 到 to 的相对路径。
const path = require('path');
console.log(path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'));
// 输出 ../../impl/bbb
复制代码
path.resolve() 方法将路径或路径片断的序列解析为绝对路径。
const path = require('path');
console.log(path.resolve('/foo/bar', './baz')); // 输出 /for/bar/baz
console.log(path.resolve('/foo/bar', '/tmp/file/');); // 输出 /tmp/file
console.log(path.resolve('a','b','../c/img.gif'));
// 假设当前工做目录 /home/wwwroot,上述语句输出 /home/wwwroot/a/c/img.gif
console.log(path.resolve()); // 假设当前工做目录 /home/wwwroot 输出 /home/wwwroot
复制代码
path
模块的主要就是处理路径相关,常常和fs
模块共同使用。
欢迎关注Nodejs之路
公众号得到持续更新以及在线答疑帮助。