📜  Node.js 中 __dirname 和 ./ 的区别

📅  最后修改于: 2022-05-13 01:56:32.567000             🧑  作者: Mango

Node.js 中 __dirname 和 ./ 的区别

使用任何技术都需要与文件和目录进行交互。文件和目录保持树状结构以便于访问。使用 Node.js 还需要使用可以使用不同命令获得的文件路径来访问文件。在 Node.js 中有两种获取当前目录的方法。但是,它们彼此完全不同。

  • __目录名
  • ./

节点脚本中的 __dirname 返回当前 JavaScript 文件所在文件夹的路径。 __filename 和 __dirname 用于获取当前执行文件的文件名和目录名。

./ 给出当前工作目录。它的工作原理类似于 process.cwd() 方法。当前工作目录是执行节点命令的文件夹的路径。然而,当前工作目录可能会在脚本执行期间通过 process.chdir() API 的使用而改变。
./ 给出当前执行文件的路径的唯一情况是它与相对于当前工作目录的 require() 命令一起使用。 ./ 允许我们基于文件结构导入模块。

当节点与当前执行的文件在同一目录中运行时,__dirname 和 ./ 都给出相似的结果,但当节点从其他目录运行时产生不同的结果。

__dirname./
Gives absolute path of the directory that contains the currently executing file.Used to display the path where the terminal is opened, which is the current working directory.
Returns a pointer to a string i.e. the parent directory of currently executing file.Returns a pointer to a string i.e. the current working directory.
Works similar to process.cwd() until the node is run from a directory which is different from the directory where the JavaScript file is stored.Works similar to process.cwd() until used with require() command.

示例:以下示例演示了当从存储 JavaScript 文件的同一目录运行节点时 __dirname 和 ./ 的工作方式

示例 1:

// Node.js program to demonstrate the
// methods to display directory
   
// Include path module
var path = require("path");
  
// Methods to display directory
console.log("__dirname:    ", __dirname);
console.log("process.cwd() : ", process.cwd());
console.log("./ : ", path.resolve("./"));
console.log("filename: ", __filename);

运行步骤:

  • 打开记事本编辑器并粘贴以下代码并将其保存为 .js 扩展名。例如: index.js
  • 现在打开命令提示符并移动到代码所在的目录。
  • 键入node index.js命令以运行代码。

输出:
图片

示例 2:

// Node.js program to demonstrate the
// methods to display directory
   
// Include path module
var path = require("path");
  
// Methods to display directory
console.log("__dirname:    ", __dirname);
console.log("process.cwd() : ", process.cwd());
console.log("./ : ", path.resolve("./"));
console.log("filename: ", __filename);

运行步骤:

  • 打开记事本编辑器并粘贴以下代码并将其保存为 .js 扩展名。例如: index.js
  • 现在打开命令提示符,如果您的路径是桌面,则键入 cd.. 以移动其父目录。
  • 键入node Desktop/index.js命令以运行代码。

输出: