Nodejs基础路径处理模块path总结Word下载.docx

上传人:b****1 文档编号:13161793 上传时间:2022-10-07 格式:DOCX 页数:9 大小:56.58KB
下载 相关 举报
Nodejs基础路径处理模块path总结Word下载.docx_第1页
第1页 / 共9页
Nodejs基础路径处理模块path总结Word下载.docx_第2页
第2页 / 共9页
Nodejs基础路径处理模块path总结Word下载.docx_第3页
第3页 / 共9页
Nodejs基础路径处理模块path总结Word下载.docx_第4页
第4页 / 共9页
Nodejs基础路径处理模块path总结Word下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Nodejs基础路径处理模块path总结Word下载.docx

《Nodejs基础路径处理模块path总结Word下载.docx》由会员分享,可在线阅读,更多相关《Nodejs基础路径处理模块path总结Word下载.docx(9页珍藏版)》请在冰豆网上搜索。

Nodejs基础路径处理模块path总结Word下载.docx

require('

path'

);

2.var 

filepath 

'

/tmp/demo/js/test.js'

;

3. 

4.// 

输出:

/tmp/demo/js 

5.console.log( 

path.dirname(filepath) 

获取文件名

严格意义上来说,path.basename(filepath)只是输出路径的最后一部分,并不会判断是否文件名。

但大部分时候,我们可以用它来作为简易的“获取文件名“的方法。

2. 

3.// 

test.js 

4.console.log( 

path.basename('

) 

5. 

6.// 

test 

7.console.log( 

/tmp/demo/js/test/'

8. 

9.// 

10.console.log( 

/tmp/demo/js/test'

如果只想获取文件名,单不包括文件扩展呢?

可以用上第二个参数。

1.// 

2.console.log( 

 

.js'

获取文件扩展名

简单的例子如下:

.js 

path.extname(filepath) 

更详细的规则是如下:

(假设path.basename(filepath)===B)

从B的最后一个.开始截取,直到最后一个字符。

如果B中不存在.,或者B的第一个字符就是.,那么返回空字符串。

直接看官方文档的例子

1.path.extname('

index.html'

2.// 

returns 

.html'

4.path.extname('

index.coffee.md'

5.// 

.md'

6. 

7.path.extname('

index.'

8.// 

.'

9. 

10.path.extname('

index'

11.// 

12. 

13.path.extname('

.index'

14.// 

路径组合

path.join([...paths])

path.resolve([...paths])

path.join([...paths])

把paths拼起来,然后再normalize一下。

这句话反正我自己看着也是莫名其妙,可以参考下面的伪代码定义。

输出 

/foo/bar/baz/asdf'

4.path.join('

/foo'

bar'

baz/asdf'

quux'

..'

path定义的伪代码如下:

1.module.exports.join 

function(){ 

var 

paths 

Array.prototye.slice.call(arguments, 

0);

return 

this.normalize( 

paths.join('

/'

4.};

path.resolve([...paths])

这个接口的说明有点啰嗦。

你可以想象现在你在shell下面,从左到右运行一遍cdpath命令,最终获取的绝对路径/文件名,就是这个接口所返回的结果了。

比如path.resolve('

/foo/bar'

'

./baz'

)可以看成下面命令的结果

1.cd 

/foo/bar 

2.cd 

./baz 

更多对比例子如下:

假设当前工作路径是 

/Users/a/Documents/git-code/nodejs-learning-guide/examples/2016.11.08-node-path 

4. 

6.console.log( 

path.resolve('

7. 

9.console.log( 

10. 

/foo/bar/baz 

12.console.log( 

13. 

15.console.log( 

./baz/'

16. 

17.// 

/tmp/file 

18.console.log( 

/tmp/file/'

19. 

20.// 

/Users/a/Documents/git-code/nodejs-learning-guide/examples/2016.11.08-node-path/www/js/mod.js 

21.console.log( 

www'

js/upload'

../mod.js'

路径解析

path.parse(path)

path.normalize(filepath)

从官方文档的描述来看,path.normalize(filepath)应该是比较简单的一个API,不过用起来总是觉得没底。

为什么呢?

API说明过于简略了,包括如下:

如果路径为空,返回.,相当于当前的工作路径。

将对路径中重复的路径分隔符(比如linux下的/)合并为一个。

对路径中的.、..进行处理。

(类似于shell里的cd..)

如果路径最后有/,那么保留该/。

感觉stackoverflow上一个兄弟对这个API的解释更实在,原文链接。

Inotherwords,path.normalizeis"

WhatistheshortestpathIcantakethatwilltakemetothesameplaceastheinput"

代码示例如下。

建议读者把代码拷贝出来运行下,看下实际效果。

4.var 

index 

0;

6.var 

compare 

function(desc, 

callback){ 

console.log('

[用例%d]:

%s'

++index, 

desc);

callback();

\n'

10.};

11. 

12.compare('

路径为空'

// 

14. 

console.log( 

path.normalize('

15.});

17.compare('

路径结尾是否带/'

18. 

/tmp/demo/js/upload 

/tmp/demo/js/upload'

20. 

21. 

/tmp/demo/js/upload/ 

22. 

/tmp/demo/js/upload/'

23.});

24. 

25.compare('

重复的/'

26. 

27. 

/tmp/demo//js'

28.});

29. 

30.compare('

路径带..'

31. 

32. 

/tmp/demo/js/upload/..'

33.});

34. 

35.compare('

相对路径'

36. 

demo/js/upload/ 

37. 

./demo/js/upload/'

38. 

39. 

40. 

demo/js/upload/'

41.});

42. 

43.compare('

不常用边界'

44. 

.. 

45. 

./..'

46. 

47. 

48. 

49. 

50. 

../ 

51. 

../'

52. 

53. 

54. 

/../'

55. 

56. 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1