您的位置:首页 > Web前端 > Node.js

node.js path模块属性方法

2016-12-26 19:17 691 查看

node.js path模块属性方法

'use strick'

/*使用之前需要查询出path模块*/
const path = require('path');

const dirname = __dirname;

/**
* path.jion(paths)方法是将路径参数序列拼接起来的
* */
let query = path.join(dirname,'./query.js');
console.log(query);// dirname/query.js

/**
* path.normalize(path)方法是将路径正常化为平台的分割符
* 1.处理//为/
* 2.处理将路径中不包含的文件夹去掉,一般结合../,normal输出可以看出该方法将路径矫正了
* ,不走弯路,,因为name/../其实就是name的父目录,接着age是在name父目录里面所以没有必
* 要在name文件夹绕一圈再进入age
* 3.同样的./表示当前目录,需要将累赘砍去
* 4.如果路径为空,normal值为‘.’
* */
let normal = path.normalize('//name/.././age/index.js');
let normal = path.normalize('name/age/../index.js');
console.log(normal); // '/age/index.js'

/**
* 判断一个路径是否是绝对路径
*/
let isAbsolute = __dirname + 'query.js';
let Absolute1 = '../query.js';
let Absolute2 = '.';
console.log(path.isAbsolute(isAbsolute));
console.log(path.isAbsolute(Absolute1));
console.log(path.isAbsolute(Absolute2));

/**
* path.posix提供posix特定实现路径方法接口,以下打印出posix系统下面路径模块的属性和方法
*/
console.log(path.posix);

/**
*path.resolve(paths);参数是一系列路径,或者是路径片段,将参数转换成绝对路径
*1.参数拼接从右边到左边开始知道遇到以/开头的参数(posix),被认为是找到绝对路径,如果一
* 直没有遇到那么就是拼接到最后以当前工作目录拼接上,当前工作目录指的是terminal当前cd到
* 的目录
*
*/

console.log(path.resolve(__dirname,'/jxisme/../','node/query.js'));
console.log(path.resolve('query.js'));

console.log(path.resolve('/foo/bar', './baz'));
// Returns: '/foo/bar/baz'

console.log(path.resolve('/foo/bar', '/tmp/file/'));
// Returns: '/tmp/file'

console.log(path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'));
// if the current working directory is /home/myself/node,
// this returns '/home/myself/node/wwwroot/static_files/gif/image.gif'

/**
* path.sep;取出当前平台用于将路径分割为路径片段的分隔符
* path.delimiter;取出当前平台用于将多个路径之间的分割符号
*/
console.log(path.sep); // '/'
console.log(path.delimiter) // ':'

/**
* path.relative(from, to);
* 1.传入两个绝对路径,返回to相对from目录(路径)的相对路径
* 2.两个路径相等时候,返回一个0长度的字符串(指的是空串不能不传参数)
* 3.如果to或from为空,将空的参数替换为当前工作目录
*/

console.log(path.relative('/data/orandea/test/aaa','/data/orandea/impl/bb'));
// ../../impl/bb

console.log(path.relative('/data/orandea/test/aaa',''));
// ../../../../Volumes/Macintosh HD/WebDesign/node/path

console.log(path.relative('',''));
// ''

/*
*以下过程会先找出from到to的相对路径,../tal,然后再再resolve寻找绝对路径,直接将../tal**拼
合/data/name/cod/mac之后为/data/name/cod/mac/../tal再将mac/../抵消
*/
console.log(path.resolve(
'/data/name/cod/mac'
,path.relative('/data/name/cod/mac','/data/name/impl/tal')
));
// HD/WebDesign/impl/tal
console.log(path.resolve('/data/name/impl/tal'));
// /data/name/impl/tal

/**
* path.parse(path);将路径通过/号分成元素存放在对象中,
* 输出:{ root: '/',
dir: '/data/name/code',
base: 'index.js',
ext: '.js',
name: 'index' }
{ root: '/',
dir: '/data/name/code',
base: 'index',
ext: '',
name: 'index' }
*/
console.log(path.parse('/data/name/code/index.js'));
console.log(path.parse('/data/name/code/index'));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node.js resolve path