3 path核心模块

const path = require('path')
// require('./static/test/test')
{
  /*
  总结:
__dirname: 获得当前执行文件所在目录的完整目录名
__filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名
./: 不使用require时候,./与process.cwd()一样,使用require时候,与__dirname一样
只有在 require() 时才使用相对路径(./, ../) 的写法,其他地方一律使用绝对路径,如下:

// 当前目录下
 path.dirname(__filename) + '/path.js'; 
// 相邻目录下
 path.resolve(__dirname, '../regx/regx.js');
  */
}
{
  //获取路径
  console.log('获取路径');
  let res = path.dirname('./static/test/test.js') //  ./static/test
  console.log("res", res)
}
{
  //路径拼接
  console.log('------------------------------------');
  console.log(__dirname); //当前文件的父目录路径          D:\code1\nodeDemo\nodeLearn

  console.log(path.join(__dirname, '/img/1.png'))     // D:\code1\nodeDemo\nodeLearn\img\1.png
  console.log(path.join(__dirname, 'img/1.png'))      // D:\code1\nodeDemo\nodeLearn\img\1.png
  console.log(path.join(__dirname, './img/1.png'))    // D:\code1\nodeDemo\nodeLearn\img\1.png
  console.log(path.join(__dirname, '../img/1.png'))   // D:\code1\nodeDemo\img\1.png
  
  console.log('########################################');

  console.log(path.resolve(__dirname, '/img/1.png'))  //  D:\img\1.png
  console.log(path.resolve(__dirname, 'img/1.png'))   //  D:\code1\nodeDemo\nodeLearn\img\1.png
  console.log(path.resolve(__dirname, './img/1.png')) //  D:\code1\nodeDemo\nodeLearn\img\1.png
  console.log(path.resolve(__dirname, '../img/1.png'))//  D:\code1\nodeDemo\img\1.png

}
{
  //获取文件名path.basename(filepath)
  let path1 = path.basename('./static/test/test.js') // test.js
  let path2 = path.basename('/static/1.txt') // 1.txt
  // 第二个参数去掉结果后缀
  let path3 = path.basename('./static/test/test.js', '.js') // test    本来是test.js --去掉.js -->test
  let path4 = path.basename('./static/test/test.js', '.css') // test.js  去不掉就原样输出
}

{
  //获取后缀 :path.extname(filepath)
  let ext = path.extname('./static/1.txt') //.txt
  let ext1 = path.extname('./static/test/test.js') // .js
  let ext2 = path.extname('static/test/test.js') // .js
}
{
  //提供平台特定的路径片段分隔符: Windows 分隔符上是 \。
  let res = './foo/bar/baz'.split(path.sep); //[ './foo/bar/baz' ]
  let res1 = 'foo\\bar\\baz'.split(path.sep); //[ 'foo', 'bar', 'baz' ]

}

 

posted on 2020-07-14 18:18  章画  阅读(149)  评论(0编辑  收藏  举报

导航