Nodejs基础路径处理模块path总结Word下载.docx
- 文档编号:13161793
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:9
- 大小:56.58KB
Nodejs基础路径处理模块path总结Word下载.docx
《Nodejs基础路径处理模块path总结Word下载.docx》由会员分享,可在线阅读,更多相关《Nodejs基础路径处理模块path总结Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
=
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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Nodejs 基础 路径 处理 模块 path 总结