首页 > 语言 > JavaScript > 正文

Node.js中路径处理模块path详解

2024-05-06 15:06:58
字体:
来源:转载
供稿:网友

前言

在node.js中,提供了一个path某块,在这个模块中,提供了许多使用的,可被用来处理与转换路径的方法与属性,将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了。下面我们就来详细介绍下关于Node.js中的路径处理模块path。

获取路径/文件名/扩展名

     获取路径:path.dirname(filepath)

     获取文件名:path.basename(filepath)

     获取扩展名:path.extname(filepath)

获取所在路径

例子如下:

var path = require('path');var filepath = '/tmp/demo/js/test.js';// 输出:/tmp/demo/jsconsole.log( path.dirname(filepath) );

获取文件名

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

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

var path = require('path');// 输出:test.jsconsole.log( path.basename('/tmp/demo/js/test.js') );// 输出:testconsole.log( path.basename('/tmp/demo/js/test/') );// 输出:testconsole.log( path.basename('/tmp/demo/js/test') );

如果只想获取文件名,单不包括文件扩展呢?可以用上第二个参数。

// 输出:testconsole.log( path.basename('/tmp/demo/js/test.js', '.js') );

获取文件扩展名

简单的例子如下:

var path = require('path');var filepath = '/tmp/demo/js/test.js';// 输出:.jsconsole.log( path.extname(filepath) );

更详细的规则是如下:(假设 path.basename(filepath) === B

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

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

直接看官方文档的例子

path.extname('index.html')// returns '.html'path.extname('index.coffee.md')// returns '.md'path.extname('index.')// returns '.'path.extname('index')// returns ''path.extname('.index')// returns ''

路径组合

path.join([...paths])path.resolve([...paths])

path.join([...paths])

把paths拼起来,然后再normalize一下。这句话反正我自己看着也是莫名其妙,可以参考下面的伪代码定义。

例子如下:

var path = require('path');// 输出 '/foo/bar/baz/asdf'path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');

path定义的伪代码如下:

module.exports.join = function(){ var paths = Array.prototye.slice.call(arguments, 0); return this.normalize( paths.join('/') );};            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选