Node.js入门之path模块

简介: 前面我们介绍了什么是Node.js,今天我们主要再来说说path模块。path模块主要是对系统中路径的一些操作。比如常用的获取文件路径、文件名、文件扩展名等。

获取当前文件目录

console.log(__dirname); // D:\myworkspace\base-learn\node

获取当前文件完整路径

console.log(__filename); // D:\myworkspace\base-learn\node\path.js

获取指定文件或文件夹路径

console.log(path.dirname("D:/myworkspace/base-learn/node/path.js")); // D:/myworkspace/base-learn/node
console.log(path.dirname("D:/myworkspace/base-learn/node")); // D:/myworkspace/base-learn

获取指定文件或文件夹名

console.log(path.basename("D:/myworkspace/base-learn/node/path.js")); // path.js
console.log(path.basename("/tmp/demo/js/test/")); // 输出:test
console.log(path.basename("/tmp/demo/js/test")); // 输出:test

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

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

获取指定文件扩展名

console.log(path.extname("D:/myworkspace/base-learn/node/path.js")); // .js
// 获取扩展名的时候需要注意下面的特殊情况
console.log(path.extname("index.html")); // returns '.html'
console.log(path.extname("index.coffee.md")); // returns '.md'
console.log(path.extname("index.")); // returns '.'
console.log(path.extname("index")); // returns ''
console.log(path.extname(".index")); // returns ''

获取当前系统的分隔符

console.log(path.sep); // 当前是windows系统,返回的是\。如果是linux上是/

根据当前系统格式化路径

这里我们使用的是windows电脑,所以会将系统分隔符换成\

console.log(path.normalize("D:/myworkspace/base-learn/node/path.js")); // D:\myworkspace\base-learn\node\path.js

路径连接

path.join

从前往后将多个路径组合成一个路径,.表示当前目录,..表示返回上层目录

console.log(path.join("/foo", "bar", "baz/asdf", "quux", "..")); // \foo\bar\baz\asdf
console.log(path.join("/foo", "bar", "baz/asdf", "quux", "..", "..")); // \foo\bar\baz
console.log(path.join("/foo", "bar", "baz/asdf", "/quux")); // \foo\bar\baz\asdf\quux
console.log(path.join("/foo", "bar", "baz/asdf/", "/quux")); // \foo\bar\baz\asdf\quux
console.log(path.join("/foo", "bar", "baz/asdf", "quux", ".")); // \foo\bar\baz\asdf\quux

path.resolve

从后往前组合,组合成一个绝对路径就停止。若直到要第一个参数都组合不出来绝对路径,那么就会连接上当前文件所在绝对路径,组合成一个完整的绝对路径。

console.log(path.resolve("/www", "/res", "index.php")); // D:\res\index.php
console.log(path.resolve("/www", "res", "index.php")); // D:\www\res\index.php
console.log(path.resolve("www", "res", "index.php")); // D:\myworkspace\base-learn\node\www\res\index.php

判断是不是绝对路径

是绝对路径返回true,不是返回false

console.log(path.isAbsolute("/myworkspace/base-learn/node/path.js")); // true
console.log(path.isAbsolute("myworkspace/base-learn/node/path.js")); // false

获取相对路径

返回第二个参数相对于第一个参数的所在路径。

console.log(path.relative("c:/a/b/c", "c:/houdunren/her")); // ..\..\..\houdunren\her

路径格式化

path.format(pathObject)

pathObjectroot、dir、base、name、ext属性,按照一定的规则,组合成一个文件路径。

root 和 dir:两者可以互相替换,区别在于,路径拼接时,root后不会自动加/,而dir会。base 和 name+ext:两者可以互相替换。

console.log(
  path.format({
    dir: "a/b/c",
    name: "path.js",
  })
); // a/b/c\path.js

path.parse(filepath)

其实就是上面方法的逆向操作。将路径字符串转成路径对象。

console.log(path.parse("a/b/c/path.js")); // { root: '', dir: 'a/b/c', base: 'path.js', ext: '.js', name: 'path' }

系列文章

Node.js入门之什么是Node.js

Node.js入门之path模块

Node.js入门之fs模块

Node.js入门之url模块和querystring模块

Node.js入门之http模块和dns模块

Node.js入门之process模块、child_process模块、cluster模块

听说你还不会使用Express?

听说你还不会使用Koa?

后记

感谢小伙伴们的耐心观看,本文为笔者个人学习笔记,如有谬误,还请告知,万分感谢!如果本文对你有所帮助,还请点个关注点个赞~,您的支持是笔者不断更新的动力!

相关文章
|
3月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
676 2
|
8天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
178 1
|
2月前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
100 10
|
2月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
3月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
3月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
36 1
|
3月前
|
JavaScript 应用服务中间件 Apache
Node.js Web 模块
10月更文挑战第7天
36 0
|
设计模式 JavaScript 前端开发
|
设计模式 JavaScript 前端开发