node中的path.resolve

path.resolve([arg1,arg2,...])返回值有两种情况:

1.每个参数都不带'/',比如path.resolve(),或者path.resolve('path1','path2')

2.一个或多个参数带'/'符号 path.resolve('/path');

下面具体分析:

1.什么参数也没有的时候:

path.resolve()或者paht.resolve('')

输出:当前文件所在文件夹路径  === __dirname

2.为文件夹名字(参数>=1):

path.resolve('path')

输出:当前文件所在文件夹绝对路径/path

或者 path.resolve('path1','path2')

输出:当前文件所在文件夹绝对路径/path1/path2

或者 path.resolve('path1','path2'.......'pathX')

输出:当前文件所在文件夹绝对路径/path1/path2...../pathX

3.文件夹名字前加了'/'

注意,无论是第几个文件前加了/!!!最终路径都为:/+‘最后一个前面加/的文件文件名’+‘剩下文件夹’

好的,我知道上面那句话很难懂,那就看例子

1.path.resolve('/path')

输出: /path

2.

2.1path.resolve('path1','path2','/path3')

*前两个path前没有斜杠,只最后一个有

输出: /path2

2.2.path.resolve('path1','/path2','/path3')

*后面两个path都有斜杠

输出:/path2

看到没,跟path1,path2,根本没有任何关系,因为最后一个path2前面有斜杠/,所以地址为path2

3.path.resolve('path1','/path2','path3')

*path2有斜杠,后面的path3没有斜杠

输出: /path2/path3

总结:

if(当path.resolve参数中不存在带/的参数时)

return 绝对路径

else

return /+‘最后一个前面加/的文件文件名’+‘剩下文件夹’

带/的参数:举个例子来解释就是'/path'

相关推荐