在node.js开发中,有时候需要获取一些环境变量,其中__filename和__dirname 是两个有用的环境变量。__dirname 获取的是调用__dirname的脚本文件本身的绝对路径,不是启动脚本文件的绝对路径。

变量名称

意义

__filename

获取当前模块文件的带有完整绝对路径的文件名

__dirname

获得当前文件所在目录的完整绝对目录名,等同于path.dirname(__filename)

验证测试:

1、新建一个目录G:\Testroom\nodeDirTest,在这个目录下编辑一个代码文件 index.js 如下:

const path = require("path");
const { getConfig } = require("./utils/utils");console.log(__dirname);
console.log(__filename);
console.log(path.dirname(__filename)); console.log("getConfig:", getConfig());

2、再在 G:\Testroom\nodeDirTest 新建一个目录utils ,并在这个目录下编辑一个代码文件 utils.js 内容如下:

const path = require("path");console.log(__dirname);
console.log(__filename);
console.log(path.dirname(__filename)); function getConfig(path) {return __dirname;
}module.exports.getConfig = getConfig;

3、打开cmd命令行,进入 G:\Testroom\nodeDirTest 目录,执行 node index.js ,结果如下:

nodejs中的__filename和__dirname的使用说明相关推荐

  1. nodejs中的__filename和__dirname

    __filename:返回当前模块文件被解析过后的绝对路径, 使用__filename变量获取当前模块文件的带有完整绝对路径的文件名 __dirname:返回当前模块文件解析过后所在的文件夹(目录)的 ...

  2. NodeJs中process.cwd()与__dirname的区别

    process.cwd() 是当前Node.js进程执行时的文件夹地址--工作目录,保证了文件在不同的目录下执行时,路径始终不变 __dirname 是被执行的js 文件的地址 --文件所在目录 co ...

  3. nodejs中使用worker_threads来创建新的线程

    文章目录 简介 worker_threads isMainThread MessageChannel parentPort和MessagePort markAsUntransferable SHARE ...

  4. nodejs中的读取文件fs与文件路径path

    什么是nodejs? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,nodejs允许javascript代码运行在服务端 1. nodejs不是一门新的编程语 ...

  5. ES Module 和 CommonJS 学习笔记(二) —— NodeJS 中使用 ESM 和 CJS

    在 NodeJS 中使用 ES6 模块 当前较新版本的 NodeJS 支持 ESM 和 CJS ,但默认使用的是 CJS 规范去解析 JS 代码,直接使用 CJS 是没有任何问题的,而使用 ESM 需 ...

  6. nodejs中module.exports和exports的区别

    最近在学习nodejs,这篇文章就权当是一篇笔记,如果有什么地方有误,望指出. 首先我们要明白一个前提,CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范 Com ...

  7. nodejs+html转换pdf,Nodejs中使用phantom将html转为pdf或图片格式的方法

    最近在项目中遇到需要把html页面转换为pdf的需求,并且转换成的pdf文件要保留原有html的样式和图片.也就是说,html页面的图片.表格.样式等都需要完整的保存下来. 最初找到三种方法来实现这个 ...

  8. nodejs+html转换pdf,Nodejs中使用phantom将html转为pdf或图片格式的方法.pdf

    Nodejs中中使使用用phantom将将html转转为为pdf或或图图片片格格式式的的方方法法 最近在项目中遇到需要把html页面转换为pdf 的需求,并且转换 的pdf文件要保留原有html的样式 ...

  9. nodejs中使用node-sass

    在原生nodejs中使用Sass 1.创建根目录文件名称为demo,运行 cnpm install(淘宝源安装)安装node_modules 2.安装express:  cnpm install ex ...

最新文章

  1. SAP PM 初级系列之27 – SAP系统怎么知道某种类型的维修工单检验批上的检验类型是14?
  2. Django学习(一)
  3. 一个简易上手的短信服务Spring Boot Starter,连傻瓜都会!
  4. 街上第一台电子计算机是,南京信息工程大学滨江学院2009级《计算机基础》(文科)a试卷(含答案)【最新】.doc...
  5. 操作系统真实的虚拟内存是什么样的
  6. BugkuCTF-WEB题计算器
  7. python图像数独_Python图像识别+KNN求解数独的实现
  8. 修改数据库的兼容级别
  9. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (8) - 流水线前端/分支预测
  10. Android 系统(11)---android 系统权限大全
  11. oracle11g服务端配置实例,Win7系统Oracle11g服务端和客户端连接数据库配置
  12. ElasticSearch High Level REST API【3】Scroll 滚屏
  13. 禁止php读取目录文件目录,Php读取目录文件
  14. Mac上好用的MP4高清视频格式转化软件
  15. 自媒体短视频怎么制作?视频制作大神分享的超全教程,新手也能轻松上手!
  16. 工业视觉检测—制造过程中的缺陷和异常检测
  17. pon终端测试仪_6304-PON终端测试仪报价_测试仪-北京海富达科技有限公司
  18. iOS转场动画之微信朋友圈图片查看器
  19. LaTex 美赛笔记
  20. Android TextView、EditText显示输入法自带表情,记录一下

热门文章

  1. Matplotlib绘图-颜色,字体,刻度,label,tick_label,粗细,图例设置
  2. office visio project安装
  3. 大数据云计算学习路线
  4. 【整理】linux学习笔记(4)
  5. 快速幂详解(通俗易懂!)
  6. 五、传输层(一)传输层的功能
  7. PWM和PPM的区别
  8. 思科路由器dhcp服务器配置
  9. 电子标签的制作及封装 射频标签通信协议简介 射频标签内存信息的写入方式
  10. 如何构建业务数据分析体系