node中的path.resolve

宁静致远 2018-05-15 01:46127 阅读

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

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

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. 某个参数为'./'+文件名

*path.resolve('./path')

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

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

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

 

 

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

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

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

4.1.path.resolve('/path')

输出: /path

4.2.

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

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

输出: /path2

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

*后面两个path都有斜杠

输出:/path2

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

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

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

输出: /path2/path3

 

 

总结:

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

  return 绝对路径

else

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

 

带/的参数:举个例子来解释就是 '/path'。 注:不包括'./path'

回复数量: 0
暂无评论~~
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!