zoukankan      html  css  js  c++  java
  • Nodejs中,path.join()和path.resolve()的区别

    • 在说path.join()path.resolve()的区别之前,我先说下文件路径/ ./../之间的区别

      • /代表的是根目录;

      • ./代表的是当前目录;

      • ../代表的是父级目录。

    然后再来说下path.join()path.resolve()的区别

    我们需要注意的是,这两个方法都属于path模块,在使用之前我们需要先引入模块

    const path = require('path');
    

    进入正文:

    path.resolve()

    • 方法作用
      • path.resolve方法把传入的路径或者路径段解析为绝对路径。
    • 语法:
    path.resolve([from ...], to)
    
    • 说明:
      • 如果没有传入 path 片段,或者path 片段长度为零(空字符),则path.resolve()会返回当前工作目录的绝对路径(相当于使用path.resolve(__dirname))
    • 借用一下别人的代码,我们来看下一个很经典的例子,假设当前的工作路径为/workspace/demo
    console.log(path.resolve())      // returns /workspace/demo
    console.log(path.resolve(''))     // returns /workspace/demo
    console.log(path.resolve(__dirname)) // returns /workspace/demo
    console.log(path.resolve('/img/books', '/net'))  // returns '/net'
    console.log(path.resolve('img/books', '/net'))  // returns '/net'
    console.log(path.resolve('img/books', './net'))  // returns '/workspace/demo/img/books/net'
    console.log(path.resolve('/img/books', './net'))  // returns '/img/books/net'
    console.log(path.resolve('/img/books', 'net'))   // returns '/img/books/net'
    console.log(path.resolve('/img/books', '../net'))     // returns '/img/net'
    console.log(path.resolve('src','/img/books', '../net'))  // returns '/img/net'
    console.log(path.resolve('src','./img/books', '../net'))  // returns '/workspace/demo/src/img/net'
    console.log(path.resolve('src','img/books', '../net'))   // returns '/workspace/demo/src/img/net'
    
    • 说明:我们在文章开头所说的./..//的区别就派上用场了,从右到左,我们可以看到,如果路径以/开头,就不会再拼接左边的路径了,因为已经是根目录了,如果是以./开头或者没有符号,就会拼接左边的路径,如果是以 ../开头的,就拼接左边路径的父路径。

    path.join()

    • 方法作用:
      • path.join()方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径。
    • 语法:
    path.join([path1], [path2], [...])
    
    • 说明:
      • 长度为零的 path 片段会被忽略。 如果连接后的路径字符串是一个长度为零的字符串,则返回 .,表示当前工作目录
    • 借用一下别人的代码,我们来看下一个很经典的例子
    path.join('/img', 'book', 'net/abc', 'inter', '..'); // returns /img/book/net/abc
    console.log(path.join('/img/books', '../net'))  // returns /img/net
    console.log(path.join('img/books', '../net'))   // returns img/net
    console.log(path.join('/img/books', './net'))   // returns /img/books/net
    console.log(path.join('img/books', './net'))   // returns img/books/net
    console.log(path.join('/img/books', 'net'))    // returns /img/books/net
    console.log(path.join('img/books', 'net'))    // returns /img/books/net
    console.log(path.join('/img/books', '/net'))   // returns /img/books/net
    console.log(path.join('img/books', '/net'))    // returns img/books/net
    
    今天你学习了吗!!!
  • 相关阅读:
    流式布局
    发送短信验证码 倒计时
    jQuery-qrcode.js 生成带Logo 的二维码
    bootstrap-daterangepicker插件运用
    html 转 pdf
    input placeholder 在chrome 浏览器自动填充时,背景色覆盖原有背景图片问题。
    jQuery.qrcode 生成二维码,并使用 jszip、FileSaver 下载 zip 压缩包至本地。
    java学习之super、final、static关键字及匿名对象
    java学习之数组
    java学习之循环语句
  • 原文地址:https://www.cnblogs.com/nayek/p/12165359.html
Copyright © 2011-2022 走看看