Node.js内置模块:path路径模块

简介: 《前端基础》

path 路径模块

Node.js 通过path这个内置模块,提供了一些路径操作的API,具体可以参考官方的api文档。这里列举一些常用的API。

path.extname() 获取文件/路径的扩展名

语法格式:

path.extname(myPath);

代码解释:

  • 获取 myPath 这个文件或者路径的扩展名。
  • myPath 这个参数要求是字符串。如果 myPath 不是字符串,则抛出 TypeError。

代码举例:

const path = require('path');
path.extname('hello.txt'); // 返回 '.txt'
path.extname('www.qianguyihao.com'); // 返回 '.com'
path.extname('index.coffee.md');  // 返回 '.md'
path.extname('index.');  // 返回 '.'
path.extname('index');  // 返回 ''
path.extname('.index');  // 返回 ''
path.extname('.index.md');  // 返回 '.md'

path.resolve() 生成完成的绝对路径

语法格式:

path.resolve([...myPaths])

解释:

  • 将路径或路径片段的序列解析为绝对路径。
  • 返回的路径是从右往左处理,后面的每个 myPath 被依次解析,直到构造出一个完整的绝对路径。

代码举例:

const path = require('path');
let arr1 = ['/foo1/foo2', 'qianguyihao', 'foo3'];
let result1 = path.resolve(...arr1);
console.log(result1); // 打印结果:/foo1/foo2/qianguyihao/foo3
let arr2 = ['/foo1/foo2', '/qianguyihao', 'foo3'];
let result2 = path.resolve(...arr2);
console.log(result2); // 打印结果:/qianguyihao/foo3

几个常见路径

  • __dirname:这是一个常量,表示:当前执行文件所在完整目录
  • __filename:这是一个常量。表示:当前执行文件的完整目录 + 文件名
  • process.cwd:获取当前执行 Node命令 时的目录名。

代码举例:

console.log(__dirname);
console.log(__filename);
console.log(process.cwd());

运行结果:

$ node app.js
/Users/smyhvae/qianguyihao
/Users/smyhvae/qianguyihao/app.js
/Users/smyhvae/qianguyihao

path.join() 将多个路径进行拼接

如果是我们手动拼接路径,容易出错。这个时候,可以利用 path.join() 方法将路径进行拼接。

语法格式:

path.join([...paths]);

解释:使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。

代码举例:

const path = require('path');
const result1 = path.join(__dirname, './app.js');
console.log(result1); // 返回:/Users/smyhvae/qianguyihao/app.js
const result2 = path.join('/foo1', 'foo2', './foo3');
console.log(result2); // 返回:/foo1/foo2/foo3
const result3 = path.join('/foo1', 'foo2', '/foo3');
console.log(result3); // 返回:/foo1/foo2/foo3

OS 系统模块

  • os.networkInterfaces() 查看网络地址
相关文章
|
3天前
|
JavaScript 前端开发 测试技术
编写JavaScript模块化代码主要涉及将代码分割成不同的文件或模块,每个模块负责处理特定的功能或任务
【5月更文挑战第10天】编写JavaScript模块化代码最佳实践:使用ES6模块或CommonJS(Node.js),组织逻辑相关模块,避免全局变量,封装细节。利用命名空间和目录结构,借助Webpack处理浏览器环境的模块。编写文档和注释,编写单元测试以确保代码质量。通过这些方法提升代码的可读性和可维护性。
9 3
|
13天前
|
消息中间件 监控 JavaScript
Node.js中的进程管理:child_process模块与进程管理
【4月更文挑战第30天】Node.js的`child_process`模块用于创建子进程,支持执行系统命令、运行脚本和进程间通信。主要方法包括:`exec`(执行命令,适合简单任务)、`execFile`(安全执行文件)、`spawn`(实时通信,处理大量数据)和`fork`(创建Node.js子进程,支持IPC)。有效的进程管理策略涉及限制并发进程、处理错误和退出事件、使用流通信、谨慎使用IPC以及监控和日志记录,以确保应用的稳定性和性能。
|
15天前
|
缓存 JavaScript 前端开发
Node.js的模块系统:CommonJS模块系统的使用
【4月更文挑战第29天】Node.js采用CommonJS作为模块系统,每个文件视为独立模块,通过`module.exports`导出和`require`引入实现依赖。模块有独立作用域,保证封装性,防止命名冲突。引入的模块会被缓存,提高加载效率并确保一致性。利用CommonJS,开发者能编写更模块化、可维护的代码。
|
28天前
|
JavaScript API
node.js之模块系统
node.js之模块系统
|
JavaScript 前端开发 算法
PathFinding.js – 综合性的 JavaScript 路径查找库
  PathFinding.js 是一个综合性的 JavaScript 路径查找库。这个项目的目的是提供一个可以很容易地纳入网页游戏的路径查找库。它可以运行在 Node.js 或浏览器中。提供的在线演示展示了算法是如何执行的。
989 0
|
14天前
|
存储 移动开发 JavaScript
学习javascript,前端知识精讲,助力你轻松掌握
学习javascript,前端知识精讲,助力你轻松掌握
|
21天前
|
JavaScript 前端开发 测试技术
学习JavaScript
【4月更文挑战第23天】学习JavaScript
14 1
|
28天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
2月前
|
运维 JavaScript 前端开发
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
|
2月前
|
JavaScript
Vue.js学习详细课程系列--共32节(6 / 6)
Vue.js学习详细课程系列--共32节(6 / 6)
28 0