nodejs 中 path.join() 和 path.resolve()的区别

nodejs 中 path.join() 和 path.resolve()

基本介绍

__dirname:返回当前文件所在的绝对路径

引入 path模块

const path = require('path')

使用

nodejs 中 path.join() 和 path.resolve()的区别

path.join()

path.join() 主要作用是拼接路径

path.join方法用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是”/“,Windows系统是”\“。

console.log(path.join('a', 'b', '..', 'c/', './d'));
// 将path片段都连接起来
// 输出:a/c/d

path.resolve()

path.resolve() 方法用于将相对路径转为绝对路径。

/作为绝对路径的根目录,遇到 / 则回到根目录解析

它可以接受多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径。如果根据参数无法得到绝对路径,就以当前所在路径作为基准。除了根目录,该方法的返回值都不带尾部的斜杠

path.resolve(); // 默认返回所在目录绝对路径,等于 __dirname 
path.resolve('/foo/bar', './baz')
// '/foo/bar/baz'

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

执行的效果类似于 cd 操作

cd /foo/bar  ==> /foo/bar
cd ./baz     ==> /foo/bar
cd /tmp/file ==> /tmp/file