- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - path.dirname() 方法
path 模块的 Node.js path.dirname() 方法是一个辅助方法,用于获取指定路径的父目录。当您需要确定应用程序或脚本从哪个文件夹运行时,或者当您想要找出某个文件在文件系统中的位置时,此方法非常有用。
然而,在基于 LINUX 的系统上,我们可以使用 dirname 命令获取路径的目录名称部分。在此方法中,尾随目录分隔符将被忽略。
语法
以下是 path 模块的 Node.js path.dirname() 方法的语法 -
path.dirname( path )
参数
- path − 此参数包含用于提取该特定文件的目录名称的文件路径。由于路径不是字符串,因此会抛出 TypeError。
此方法返回一个字符串,该字符串指定指定文件路径的目录名称。这有助于分析路径以确定文件相对于另一个文件或文件夹的位置。
例如果我们将 path 参数传递给该方法,它将返回指定 path 的目录名称部分。
在以下示例中,我们尝试使用 os 模块的 Node.js path.dirname() 方法获取指定文件路径 (Nodefile.js) 的目录名称。
const path = require('path');
const path1 = path.dirname("C:/Users/Lenovo/Desktop/JavaScript/Nodefile.js");
console.log("The Directory name of the file path (Nodefile.js) is: " + path1);
输出
执行上述程序后,path.dirname() 返回给定文件路径的目录名称部分。
The Directory name of the file path (Nodefile.js) is: C:/Users/Lenovo/Desktop/JavaScript
例
如果我们将一个不是字符串类型的值传递给 path 参数,该方法将抛出 TypeError。
在下面的示例中,我们将整数而不是字符串传递给方法的 path 参数。
const path = require('path');
const path1 = path.dirname(6576543);
console.log("The Directory name of the path (Nodefile.js) is: " + path1);
类型错误
如果我们编译并运行上述程序,path.dirname() 方法会抛出 TypeError,因为 path 参数不是字符串值。
For Output Code pre classpath.js:39
throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
at assertPath (path.js:39:11)
at Object.dirname (path.js:1270:5)
at Object.<anonymous> (/home/cg/root/63a028ab0650d/main.js:3:20)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
at assertPath (path.js:39:11)
at Object.dirname (path.js:1270:5)
at Object.<anonymous> (/home/cg/root/63a028ab0650d/main.js:3:20)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
例
以下是获取指定文件路径的目录名称部分的另一种方法。
const path = require('path');
console.log("The file path of (Nodefile.js): " + __filename);
const path1 = path.dirname(__filename);
console.log("The Directory name portion of the file is: " + path1);
输出
如果我们在在线编译器中执行代码,它将根据 POSIX 操作系统显示结果。
以下是上述程序的输出 -
The file path of (Nodefile.js): /home/cg/root/63a028ab0650d/main.js
The Directory name portion of the file is: /home/cg/root/63a028ab0650d
The Directory name portion of the file is: /home/cg/root/63a028ab0650d
当我们在 WINDOWS 操作系统上执行上述程序时,“__filename”将获取当前文件的路径,path.dirname() 方法将返回当前文件路径的目录名称部分。
The file path of (Nodefile.js): C:\Users\Lenovo\Desktop\JavaScript\nodefile.js
The Directory name portion of the file is: C:\Users\Lenovo\Desktop\JavaScript
The Directory name portion of the file is: C:\Users\Lenovo\Desktop\JavaScript