【第一篇】NodeJs模块篇——Path模块的基本使用|梦小慀

简介: path 是 node.js 官方提供的一个对路径处理很实用的工具模块,多种函数对来访问文件系统并与文件系统进行交互。

Path 模块

path 是 node.js 官方提供的一个对路径处理很实用的工具模块,多种函数对来访问文件系统并与文件系统进行交互。

下面是提供的多种函数:

basename(); //返回路径的最后一部分
dirname(); //返回路径目录
extname(); //返回路径扩展名
isAbsolute(); //判断是否为绝对路径
join(); //拼接路径
normalize(); //计算返回真实路径
parse(); //解析路径
relative(); //返回相对路径
resolve(); //返回绝对路径

1.basename();

basename()作用是返回路径中的最后一部分,第二个参数可以用于过滤掉文件扩展名,看实例:

目录列表
path/data/text
path/data/text/config.json
path/index.js

创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.basename("/data/text/"));
console.log(path.basename("/data/text/config.json"));
console.log(path.basename("/data/text/config.json", ".json"));

打印结果为:

text;
config.json;
config;

2.dirname();

dirname()作用是返回路径目录部分,看实例:

目录列表
path/data/text
path/data/text/config.json
path/index.js

创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.dirname("/data/text/"));
console.log(path.dirname("/data/text/config.json"));

打印结果为:

/data
/data/text

3.extname();

extname()作用是返回路径扩展名部分,看实例:

目录列表
path/data/text
path/data/text/config.json
path/index.js

创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.extname("/data/text"));
console.log(path.extname("/data/text/config.json"));

打印结果为:

""; //返回空
".json";

4.isAbsolute();

isAbsolute()作用是用于判断路径是否为绝对路径,并返回一个 Boolean 类型 true 或 false,看实例:

无需创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.isAbsolute("./data/text/config.json"));
console.log(path.isAbsolute("/data/text/config.json"));

打印结果为:

false;
true;

5.join();

join()作用有对路径进行多部分拼接,并返回一个完整路径,看实例:

无需创建演示目录,在 index.js 引入以下实例:

const path = require("path");

const index_path = "index";
const login_path = "login";
const page_path = "page";

console.log(path.join("/", index_path, login_path, "index.html"));
console.log(path.join("/", index_path, page_path, "index.html"));

打印结果为:

\index\login\index.html
\index\page\index.html

6.normalize();

normalize()作用是当路径里面包含有【.】【..】【//】等相对说明符的时候,会尝试计算出实际路径并返回,看实例:

无需创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.normalize("/data/text/./config.json"));
console.log(path.normalize("/data/text/../config.json"));
console.log(path.normalize("/data/text//config.json"));

打印结果为:

\data\text\config.json
\data\config.json
\data\text\config.json

7.parse();

parse()作用是解析路径,并返回由对象路径组成的片段,看实例:

路径片段
root: 根路径。
dir: 从根路径开始的文件夹路径。
base: 文件名 + 扩展名
ext: 文件扩展名
name: 文件名

目录列表
path/data/text/config.json
path/index.js

创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.parse("/data/text/config.json"));

打印结果为:

{
  root: '/', //根目录
  dir: '/data/text', //文件夹路径
  base: 'config.json', //文件夹 + 扩展名
  ext: '.json', //文件扩展名
  name: 'config' //文件名
}

8.relative();

relative()作用是接受两个参数,并且基于当前的工作文件,从第一个参数路径到第二个参数路径的相对路径,看实例:

无需创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.relative("/data/text", "/data/text/config.json"));
console.log(path.relative("/Page/data/", "/Page/data/page/config.js"));

打印结果为:

config.json
page\config.js

9.resolve();

resolve()可接受两个参数,作用是从相对路径里计算出绝对路径,看实例:

目录列表
path/data/text/config.json
path/index.js

创建演示目录,在 index.js 引入以下实例:

const path = require("path");

console.log(path.resolve("config.json"));

从主文件夹运行,打印结果为:

c:\Users\Mengxiwl\Desktop\path\config.json

如果指定第二个参数,resolve 会使用第一个参数作为第二个参数的基准来计算路径:

const path = require("path");

console.log(path.resolve("data", "config.json"));

从主文件夹运行,打印结果为:

c:\Users\Mengxiwl\Desktop\path\data\config.json

如果第一个参数使用斜杠开头,则表示它是绝对路径:

const path = require("path");

console.log(path.resolve("config.json"));

从主文件夹运行,打印结果为:

c:\text\config.json

第一篇到这就结束啦,感谢您的收看!

目录
相关文章
|
11天前
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
94 62
|
1月前
|
JavaScript 前端开发
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
如何使用Vue和Element UI配合Node.js及multiparty模块实现图片上传并反显的功能,包括前端的Element UI组件配置和后端的Node.js服务端代码实现。
25 1
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
|
13天前
|
缓存 JSON JavaScript
Node.js模块系统
10月更文挑战第4天
32 2
|
10天前
|
JavaScript 应用服务中间件 Apache
Node.js Web 模块
10月更文挑战第7天
17 0
|
10天前
|
JavaScript 网络协议
Node.js 工具模块
10月更文挑战第7天
13 0
|
15天前
|
JavaScript 前端开发 应用服务中间件
Node.js Web 模块
Node.js Web 模块
|
2月前
|
存储 缓存 JSON
Node.js有哪些模块系统
【8月更文挑战第12天】Node.js有哪些模块系统
36 3
|
2月前
[译] Node 模块中的 peer dependencies 是什么?
[译] Node 模块中的 peer dependencies 是什么?
|
2月前
|
存储 JavaScript 前端开发
nodejs os模块
nodejs os模块
35 0
|
3月前
|
存储 JavaScript 前端开发
Node中的AsyncLocalStorage 使用问题之async_wrap 模块是如何与 libuv 交互的
Node中的AsyncLocalStorage 使用问题之async_wrap 模块是如何与 libuv 交互的