Path模塊部分經常使用函數解析——NodeJS

官網地址:https://nodejs.org/api/path.htmljavascript

path.resolve([...paths])#

  • 參數[...paths]: <String> 參數是一個路徑序列或路徑片斷
  • 返回: <String>

功能:該函數將一個路徑序列或路徑片斷組合成一個絕對路徑;html

path.resolve([path1][, path2][, ...]) 從右向左依次拼接該路徑序列,直到構成一個絕對路徑。例如,輸入參數:/foo, /bar, baz, 調用函數path.resolve('/foo', '/bar', 'baz')後返回結果是 /bar/baz;java

若是處理完全部參數仍然沒有構成一個絕對路徑,就使用當前工做目錄的絕對路徑;結果返回的路徑是經normalized後的,尾隨斜線是沒有的,除非是根路徑;node

Zero-length path segments are ignored.api

若是路徑序列中沒有可用的路徑片斷,該函數將返回當前工做目錄的絕對路徑;ide

例子:函數

path.resolve('/foo/bar', './baz')
// Return: '/foo/bar/baz' 

path.resolve('/foo/bar', '/tmp/file/')
// Return: '/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
//若是當前工做目錄是/home/myself/node,
//返回結果是: '/home/myself/node/wwwroot/static_files/gif/image.gif'

  若是有任何參數不是字符串,將會拋出TypeError錯誤;spa

 

path.join([...paths])#

The path.join() method joins all given path segments together using the platform specific separator as a delimiter, then normalizes the resulting path.code

做用:該函數使用指定分隔符將參數中全部路徑片斷鏈接到一塊兒,並返回normalize後的結果路徑。orm

Zero-length path segments are ignored. If the joined path string is a zero-length string then '.'will be returned, representing the current working directory.

若是鏈接的參數長度爲0字符串,將會返回'.' , 表示當前工做目錄

例子:

1 path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
2 //Return: '/foo/bar/baz/asdf'
3 
4 path.join('foo', {}, 'bar')
5 //throws TypeError:Arguments to path.join must be strings

若是參數中有任何路徑片斷不是字符串,將會拋出TypeError錯誤;

 

path.normalize(path)#

The path.normalize() method normalizes the given path, resolving '..' and '.' segments.

做用:標準化路徑,處理'..'和'.'

When multiple, sequential path segment separation characters are found (e.g. / on POSIX and \on Windows), they are replaced by a single instance of the platform specific path segment separator. 後綴分隔符將保留;

If the path is a zero-length string, '.' is returned, representing the current working directory.

若是path是長度爲0的字符串,將會返回'.' , 表示當前工做目錄

For example on POSIX: 

1 path.normalize('/foo/bar//baz/asdf/quux/..') 
2 // Returns: '/foo/bar/baz/asdf' 

 

On Windows:

1 path.normalize('C:\\temp\\\\foo\\bar\\..\\')
2 //Returns: 'C:\\temp\\foo\\'

 

path.format(pathObject)#

The path.format() method returns a path string from an object. This is the opposite ofpath.parse().

When providing properties to the pathObject remember that there are combinations where one property has priority over another:

  • pathObject.root is ignored if pathObject.dir is provided
  • pathObject.ext and pathObject.name are ignored if pathObject.base exists

For example, on POSIX:

 1 // If `dir`, `root` and `base` are provided,
 2 // `${dir}${path.sep}${base}`
 3 // will be returned. `root` is ignored.
 4 path.format({
 5   root: '/ignored',
 6   dir: '/home/user/dir',
 7   base: 'file.txt'
 8 });
 9 // Returns: '/home/user/dir/file.txt'
10 
11 // `root` will be used if `dir` is not specified.
12 // If only `root` is provided or `dir` is equal to `root` then the
13 // platform separator will not be included. `ext` will be ignored.
14 path.format({
15   root: '/',
16   base: 'file.txt',
17   ext: 'ignored'
18 });
19 // Returns: '/file.txt'
20 
21 // `name` + `ext` will be used if `base` is not specified.
22 path.format({
23   root: '/',
24   name: 'file',
25   ext: '.txt'
26 });
27 // Returns: '/file.txt'

On Windows:

1 path.format({
2   dir : "C:\\path\\dir",
3   base : "file.txt"
4 });
5 // Returns: 'C:\\path\\dir\\file.txt'
相關文章
相關標籤/搜索