一文带你了解Node.js中的path模块

 更新时间:2023年03月21日 08:51:25   作者:田辛 | 田豆芽  
Node.js和Python技术类似, 都致力于能够实现跨平台的通用代码。 为此,针对路径的拼接, Node.js提供了path模块,本文就来讲讲path模块的使用

Node.js和Python技术类似, 都致力于能够实现跨平台的通用代码。 为此,针对路径的拼接, Node.js提供了path模块。 该模块提供了一些方法来处理文件路径,包括路径的拼接、解析、规范化等。在本文中,田辛老师将介绍path模块中的各个常用方法,并给出实例。同时,田辛老师还将结合__dirname,提供一个综合例子。

1 path模块

1.1 path.join()

path.join()方法将多个路径拼接成一个完整的路径。它会自动处理路径分隔符,确保生成的路径在不同操作系统上都能正常使用。

const path = require('path'); 

const dir = '/path/to/dir'; 
const filename = 'file.txt'; 

const filePath = path.join(dir, filename); 
console.log(filePath); 

// 输出Linux:/path/to/dir/file.txt
// 输出Windows:\path\to\dir\file.txt

1.2 path.resolve()

path.resolve()方法将路径解析为绝对路径。它会将相对路径转换为绝对路径,并且可以处理多个参数。

const path = require('path'); 
const dir = '/path/to/dir'; 
const filename = 'file.txt'; 
const filePath = path.resolve(dir, filename); 
console.log(filePath); 
// 输出Linux:/path/to/dir/file.txt
// 输出Windows:E:\path\to\dir\file.txt

注意: path.join()方法和path.resolve()方法都是基于路径的拼装,不保证文件的存在

1.3 path.normalize()

path.normalize()方法规范化路径,去除多余的斜杠和点。它会将路径中的斜杠转换为当前操作系统的标准斜杠,并且会处理多个点和斜杠。

const path = require('path');

const dir = '/path/to/dir//';
const filename = './file.txt';

const filePath = path.normalize(dir + filename);
console.log(filePath); 
// 输出:/path/to/dir/file.txt

1.4 path.dirname()

path.dirname()方法获取路径中的目录部分。它会返回路径中最后一个斜杠之前的部分。

const path = require('path'); 
const filePath = '/path/to/dir/file.txt'; 
const dir = path.dirname(filePath); 
console.log(dir); 
// 输出:/path/to/dir

1.5 path.basename()

path.basename()方法获取路径中的文件名部分。它会返回路径中最后一个斜杠之后的部分。

const path = require('path'); 
const filePath = '/path/to/dir/file.txt'; 
const filename = path.basename(filePath); 
console.log(filename); // 输出:file.txt

1.6 path.extname()

path.extname()方法获取路径中的文件扩展名部分。它会返回路径中最后一个点之后的部分。

const path = require('path'); 
const filePath = '/path/to/dir/file.txt'; 
const extname = path.extname(filePath); 
console.log(extname); // 输出:.txt

2 __dirname变量

2.1 变量说明

__dirname变量是Node.js的一个全局变量, 它表示当前模块所在的目录的绝对路径。

console.log(__dirname); // 输出:E:\develop\node.js

2.2 __dirname 和 path.join 联合使用

const path = require('path');

const dir = path.join(__dirname, 'files');
const filename = 'file.txt';

const filePath = path.join(dir, filename);
console.log(filePath); // 输出:E:\develop\node.js\files\file.txt

在上面的例子中,田辛老师使用path.join()方法将__dirname和’files’拼接成一个目录路径,然后再将文件名拼接到目录路径中,得到完整的文件路径。这样,我们就可以方便地处理文件路径了。

到此这篇关于一文带你了解Node.js中的path模块的文章就介绍到这了,更多相关Node.js path模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Node.js中实现后端与前端的交互的方法详解

    在Node.js中实现后端与前端的交互的方法详解

    在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高, 所以本文给大家介绍了在Node.js中实现后端与前端的交互的方法,需要的朋友可以参考下
    2024-09-09
  • Node.js的Web模板引擎ejs的入门使用教程

    Node.js的Web模板引擎ejs的入门使用教程

    ejs是Node世界的开源模板引擎中比较有人气的一个,而且并不只是在Express框架中才可以使用,今天为大家带来Node.js的Web模板引擎ejs的入门学习教程,其中侧重于ejs的layout页面布局放面
    2016-06-06
  • Node.js中Process.nextTick()和Process.setImmediate()的区别

    Node.js中Process.nextTick()和Process.setImmediate()的区别

    这篇文章介绍了Node.js中Process.nextTick()和Process.setImmediate()的区别,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Node.js 8 中的重要新特性

    Node.js 8 中的重要新特性

    这篇文章主要介绍了Node.js 8 中的重要新特性的相关资料,需要的朋友可以参考下
    2017-06-06
  • Node.js使用Sharp.js进行图像处理的实践与技巧

    Node.js使用Sharp.js进行图像处理的实践与技巧

    Sharp.js 是一个高性能的 Node.js 图像处理库,基于 C 语言编写的 libvips 库封装而来,提供了便捷、高效的图片编辑与转换功能,以下是对 Sharp.js 的深入解析,包括全方位实践与技巧,需要的朋友可以参考下
    2024-08-08
  • 基于NodeJS的前后端分离的思考与实践(二)模版探索

    基于NodeJS的前后端分离的思考与实践(二)模版探索

    在传统的开发模式中,浏览器端与服务器端是由不同的前后端两个团队开发,但是模版却又在这两者中间的模糊地带。因此模版上面总不可避免的越来越多复杂逻辑,最终难以维护。
    2014-09-09
  • 基于Node.js + WebSocket打造即时聊天程序嗨聊

    基于Node.js + WebSocket打造即时聊天程序嗨聊

    这篇文章主要介绍了基于Node.js + WebSocket打造即时聊天程序,有兴趣的可以了解一下。
    2016-11-11
  • NodeJs Express中间件超详细讲解

    NodeJs Express中间件超详细讲解

    Express中间件本质上就是一个function处理函数,多个中间件之间,共享同一份req和res,我们就可以在上游的中间件中统一为req或者res对象添加自定义的属性或方法,供下游的中间件或路由进行使用,非常方便
    2022-08-08
  • node工作线程worker_threads的基本使用

    node工作线程worker_threads的基本使用

    本文主要介绍了node工作线程worker_threads的基本使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Node.JS枚举统计当前文件夹和子目录下所有代码文件行数

    Node.JS枚举统计当前文件夹和子目录下所有代码文件行数

    这篇文章主要介绍了Node.JS枚举统计当前文件夹和子目录下所有代码文件行数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08

最新评论