path.normalize()
1. 前言
本系列课程对非功能性函数内容安排中,将插入一些在生产过程中可能会用到对应函数的例子。
本节课将会引导大家学习了解:
path.normalize()的使用方法
学习完本节课程后,应该具有:
- 使用
path模块判断路径是否为绝对路径的能力
2. path.normalize()
path.normalize() 可以规范化传入的路径。若路径片段类型错误,会抛出 TypeError 异常。
2.1 代码例子
我们先来执行下面这段代码:
// 引入 path 模块
const path = require('path');
// 打印结果
console.log(__dirname);
let pre_normalize = __dirname + '/..';
console.log(pre_normalize);
let normalized = path.normalize(pre_normalize);
console.log(normalized);
结果:
/Users/programing/noneJS/path/normalize
/Users/programing/noneJS/path/normalize/..
/Users/programing/noneJS/path
Tips:
path.normalize()可以解析字符串中的.或..来影响规范化后结果。
再执行下面这段代码:
// 引入 path 模块
const path = require('path');
// 打印结果
// ./normalize.txt 并不存在
console.log(path.normalize(__dirname + '/normalize.txt'));
结果:
/Users/programing/noneJS/path/normalize/normalize.txt
Tips:
path.normalize()并不会检查路径是否真实存在。
继续执行下面这段代码:
// 引入 path 模块
const path = require('path');
// 打印结果
console.log(path.normalize([__dirname + './join.txt']));
结果:
internal/validators.js:125
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
at validateString (internal/validators.js:125:11)
at Object.normalize (path.js:1112:5)
at Object.<anonymous> (/Users/programing/noneJS/path/normalize/path.normalize.js:11:18)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
Tips:
path.join()只接收String类型的传参。
4. 小结
本节课程我们主要学习了 path.normalize()。
重点如下:
-
重点1
path.normalize()不会校验路径是否存在。 -
重点2
path.normalize()只接收String类型的传参。