node之path模块

path模块提供了一些工具函数,用于处理文件与目录的路径

const path = require('path')

path.basename(path[,ext])

  • path
  • ext
  • 返回string
    path.basename()返回path的最后一个部分

path.delimiter

返回平台特定的路径分隔符

path.dirname(path)

path.dirname方法返回一个path的目录名,类似于Unix中的dirname命令

path.extname(path)

path.extname()方法返回path的扩展名,即从path的最后一部分中的最后一个.字符到字符串结束。

path.format(pathObject)

从一个对象中返回一个路径字符串。与path.parse()相反

  • pathObject

    • dir
    • root
    • base
    • name
    • ext

    当pathObject提供的属性有组合时,有些属性的优先级比其他的高

    • 如果提供了pathObject.dir,则pathObject.root会被忽略
    • 如果提供了pathObject.base存在,则pathObject.ext和pathObject.name会被忽略
    // 如果提供了 `dir`、`root` 和 `base`,则返回 `${dir}${path.sep}${base}`。
    // `root` 会被忽略。
    path.format({
      root: '/ignored',
      dir: '/home/user/dir',
      base: 'file.txt'
    });
    // 返回: '/home/user/dir/file.txt'
    
    // 如果没有指定 `dir`,则 `root` 会被使用。
    // 如果只提供了 `root` 或 `dir` 等于 `root`,则平台的分隔符不会被包含。
    // `ext` 会被忽略。
    path.format({
      root: '/',
      base: 'file.txt',
      ext: 'ignored'
    });
    // 返回: '/file.txt'
    
    // 如果没有指定 `base`,则 `name` + `ext` 会被使用。
    path.format({
      root: '/',
      name: 'file',
      ext: '.txt'
    });
    // 返回: '/file.txt'
    

    path.isAbsolute(path)

    path.isAbsolute()方法会判定path是否是一个绝对路径

    path.join([...paths])

    • ...path 一个路径片段的序列
      path.join()方法使用平台特定的分隔符把全部给定的path片段连接到一起,并规范化生成的路径
      长度为零的字符串,则返回'.',表示当前工作目录
    path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
    // 返回: '/foo/bar/baz/asdf'
    
    path.join('foo', {}, 'bar');
    // 抛出 'TypeError: Path must be a string. Received {}'
    

    如果任一路径片段不是一个字符串,则抛出 TypeError

    path.normalize(path)

    path.normalize()方法会规范化给定的path,并解析'...''.'片段

    path.parse(path)

    返回一个对象,对象的属性表示path的元素。尾部文件分隔符会被忽略,返回的对象有以下属性

    • dir
    • root
    • base
    • name
    • ext
    path.parse('/home/user/dir/file.txt');
    // 返回:
    // { root: '/',
    //   dir: '/home/user/dir',
    //   base: 'file.txt',
    //   ext: '.txt',
    //   name: 'file' }
    

    path.relative(from,to)

    • from
    • to
    • 返回:

    path.relative方法返回从fromto的相对路径(基于当前工作目录)。如果fromto各自解析到同一路径,(调用path.resolve()),则返回一个长度为零的字符串

    path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
    

    path.resolve([...paths])

    path.resolve()该方法会把一个路径或者路径片段解析成一个绝对路径。
    给定的路径的序列是从右往左被处理的,后面每个path被依次解析,直到构造完成一个绝对路径。

    path.resolve('/foo/bar', './baz');
    // 返回: '/foo/bar/baz'
    
    path.resolve('/foo/bar', '/tmp/file/');
    // 返回: '/tmp/file'
    
    path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
    // 如果当前工作目录为 /home/myself/node,
    // 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
    

    path.sep

    提供了平台特定的路径片段分割符
    Windows 上是
    POSIX 上是 /
    例如,在 POSIX 上:

    'foo/bar/baz'.split(path.sep);
    // 返回: ['foo', 'bar', 'baz']
    

    在 Windows 上:

    'foo\\bar\\baz'.split(path.sep);
    // 返回: ['foo', 'bar', 'baz']
    

    你可能感兴趣的:(node之path模块)