最近在看node,仿照anywhere,自己也撸了一个静态资源服务器。说道静态资源服务器,
大量运用了路径层级这块。一开始又是相对路径,绝对路径,暴露的接口也是一大堆,有点懵逼。
遂对着官方文档撸一遍,这里笔记总结一下。
path.basename(path[, ext])
- path
路径 - ext
可选参数
path.basename()返回路径的最后一部分
eg:
1 | path.basename('/foo/bar/baz/asdf/quux.html'); |
path.dirname(path)
- path
路径
path.dirname()返回path的所在路径
eg:
1 | path.dirname('/foo/bar/baz/asdf'); |
path.extname(path)
- path
路径
返回路径最后一部分中的最后一个.字符到结尾截取的字符串,如果没有字符.,或者路径最后一部分的开头是字符.,则会返回空字符串。
eg:
1 | path.extname('index.html') |
path.normalize(path)
- path
使字符串路径标准化
eg:
1 | path.normalize('/foo/bar///baz/asdf/quux/../'); |
path.join([path1][, path2][, …])
- pathX
把所有字符串参数合到一起并返回标准化后的路径
eg:
1 | path.join('/foo/', 'bar', 'baz//asdf', 'quux', '..', 'test.html') |
path.isAbsolute(path)
- path
判断path是否是绝对路径
eg:
1 | // Posix |
path.format(pathObject)
根据参数pathObject返回路径字符串。
eg:
1 | // If `dir` and `base` are provided, `dir` + platform separator + `base` |
path.parse(pathString)
和path.format相反
eg:
1 | path.parse('/home/user/dir/file.txt') |
path.relative(from, to)
该方法根据两个绝对路径from和to解析出一个相对路径(说白了就是从一个绝对路径到另一个绝对路径是怎么走的)
eg:
1 | path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb') |
path.resolve([from …], to)
简单讲就是执行一连串的cd命令,执行后返回一个绝对路径
eg:
1 | cd foo/bar |