美文网首页
node常用path方法总结

node常用path方法总结

作者: easy_mark | 来源:发表于2019-07-15 14:29 被阅读0次

    1.path.basename(path[, ext])

    path.basename() 方法返回 path 的最后一部分,ext为可选参数,是文件扩展名。

    path.basename('/foo/bar/baz/asdf/quux.html');
    // 返回: 'quux.html'
    
    path.basename('/foo/bar/baz/asdf/quux.html', '.html');
    // 返回: 'quux'
    

    2.path.dirname(path)

    path.dirname() 方法返回 path 的目录名

    path.dirname('/foo/bar/baz/asdf/quux');
    // 返回: '/foo/bar/baz/asdf'
    

    3.path.extname(path)

    path.extname() 方法返回 path 的扩展名,从最后一次出现 .(句点)字符到 path 最后一部分的字符串结束。 如果在 path 的最后一部分中没有 . ,或者如果 path 的基本名称(参阅 path.basename())除了第一个字符以外没有 .,则返回空字符串。

    path.extname('index.html');
    // 返回: '.html'
    
    path.extname('index.coffee.md');
    // 返回: '.md'
    
    path.extname('index.');
    // 返回: '.'
    
    path.extname('index');
    // 返回: ''
    
    path.extname('.index');
    // 返回: ''
    
    path.extname('.index.md');
    // 返回: '.md'
    

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

    path.join() 方法使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。
    零长度的 path 片段会被忽略。 如果连接的路径字符串是零长度的字符串,则返回 '.',表示当前工作目录。

    path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
    // 返回: '/foo/bar/baz/asdf'
    
    path.join('foo', {}, 'bar');
    // 抛出 'TypeError: Path must be a string. Received {}'
    

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

    path.resolve() 方法将路径或路径片段的序列解析为绝对路径。
    给定的路径序列从右到左进行处理,每个后续的 path 前置,直到构造出一个绝对路径。 例如,给定的路径片段序列:/foo、 /bar、 baz,调用 path.resolve('/foo', '/bar', 'baz') 将返回 /bar/baz。
    如果在处理完所有给定的 path 片段之后还未生成绝对路径,则再加上当前工作目录。
    生成的路径已规范化,并且除非将路径解析为根目录,否则将删除尾部斜杠。
    零长度的 path 片段会被忽略。
    如果没有传入 path 片段,则 path.resolve() 将返回当前工作目录的绝对路径。

    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'
    

    6.常见的node模块作用域关键字

    __dirname

    当前模块的目录名。 与 __filenamepath.dirname() 相同。
    示例,从 /Users/mjr 运行 node example.js

    console.log(__dirname);
    // 打印: /Users/mjr
    console.log(path.dirname(__filename));
    // 打印: /Users/mjr
    
    __filename

    当前模块的文件名。 这是当前的模块文件的绝对路径(符号链接会被解析)。
    对于主程序,这不一定与命令行中使用的文件名相同。
    示例:
    从 /Users/mjr 运行 node example.js:

    console.log(__filename);
    // 打印: /Users/mjr/example.js
    console.log(__dirname);
    // 打印: /Users/mjr
    

    相关文章

      网友评论

          本文标题:node常用path方法总结

          本文链接:https://www.haomeiwen.com/subject/oydnkctx.html