欢迎来到天天文库
浏览记录
ID:8961173
大小:65.60 KB
页数:9页
时间:2018-04-13
《nodejs基础路径处理模块path总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Nodejs基础:路径处理模块path总结在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。作者:程序猿小卡_casper来源:segmentfault
2、2016-11-1420:28 收藏 分享模块概览在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了。获取路径/文件名/扩展名·获取路径:path.dirname(filepath)·获取文件名:path.basename(fil
3、epath)·获取扩展名:path.extname(filepath)获取所在路径例子如下:1.var path = require('path'); 2.var filepath = '/tmp/demo/js/test.js'; 3. 4.// 输出:/tmp/demo/js 5.console.log( path.dirname(filepath) ); 获取文件名严格意义上来说,path.basename(filepath)只是输出路径的最后一部分,并不会判断是否文件名。但大部分时候,我们可以用它来作为简易的“获取文件名“的方法。1.var path = require
4、('path'); 2. 3.// 输出:test.js 4.console.log( path.basename('/tmp/demo/js/test.js') ); 5. 6.// 输出:test 7.console.log( path.basename('/tmp/demo/js/test/') ); 8. 9.// 输出:test 10.console.log( path.basename('/tmp/demo/js/test') ); 如果只想获取文件名,单不包括文件扩展呢?可以用上第二个参数。1.// 输出:test 2.console.log( path.base
5、name('/tmp/demo/js/test.js', '.js') ); 获取文件扩展名简单的例子如下:1.var path = require('path'); 2.var filepath = '/tmp/demo/js/test.js'; 3. 4.// 输出:.js 5.console.log( path.extname(filepath) ); 更详细的规则是如下:(假设path.basename(filepath)===B)·从B的最后一个.开始截取,直到最后一个字符。·如果B中不存在.,或者B的第一个字符就是.,那么返回空字符串。直接看官方文档的例子1.pa
6、th.extname('index.html') 2.// returns '.html' 3. 4.path.extname('index.coffee.md') 5.// returns '.md' 6. 7.path.extname('index.') 8.// returns '.' 9. 10.path.extname('index') 11.// returns '' 12. 13.path.extname('.index') 14.// returns '' 路径组合·path.join([...paths])·path.resolve([...paths])pa
7、th.join([...paths])把paths拼起来,然后再normalize一下。这句话反正我自己看着也是莫名其妙,可以参考下面的伪代码定义。例子如下:1.var path = require('path'); 2. 3.// 输出 '/foo/bar/baz/asdf' 4.path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); path定义的伪代码如下:1.module.exports.join = function(){ 2. var paths = Array.prototye.slice.call(argumen
8、ts, 0); 3. return this.normalize( paths.join('/') ); 4.}; path.resolve([...paths])这个接口的说明有点啰嗦。你可以想象现在你在shell下面,从左到右运行一遍cdpath命令,最终获取的绝对路径/文件名,就是这个接口所返回的结果了。比如path.resolve('/foo/bar','./baz')可以看成下面命令的结果1.cd /foo/bar 2.cd ./baz 更多对比例子如下:1.va
此文档下载收益归作者所有