全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-15 5 分钟 ✍️ juanwangdev

Node.js __filename

__filename 是 Node.js 的全局变量,返回当前模块文件的绝对路径(包含文件名)。

基本用法

JavaScript
// 假设文件路径为 /home/user/project/app.js
console.log(__filename);
// 输出: /home/user/project/app.js

console.log(__dirname);
// 输出: /home/user/project

路径解析

JavaScript
const path = require('path');

// 获取文件名
console.log(path.basename(__filename));    // app.js

// 获取文件扩展名
console.log(path.extname(__filename));      // .js

// 获取目录名
console.log(path.dirname(__filename));      // /home/user/project

// 解析路径对象
console.log(path.parse(__filename));
// { root: '/', dir: '/home/user/project', base: 'app.js', ext: '.js', name: 'app' }

常见应用场景

获取当前文件信息

JavaScript
const path = require('path');

// 获取不带扩展名的文件名
const moduleName = path.basename(__filename, '.js');
console.log(moduleName); // app

// 获取父目录名
const parentDir = path.basename(path.dirname(__filename));
console.log(parentDir);

日志记录

JavaScript
function log(message) {
  const timestamp = new Date().toISOString();
  const location = __filename;
  console.log(`[${timestamp}] [${location}] ${message}`);
}

条件执行

JavaScript
// 判断是否为入口文件
if (require.main.filename === __filename) {
  console.log('此文件被直接运行');
} else {
  console.log('此文件被其他模块引用');
}

__filename 与 __dirname 对比

变量说明示例值
__filename当前文件的绝对路径/home/user/app.js
__dirname当前文件所在目录/home/user

__filename 是模块局部变量,只在模块内部可用,不是真正的全局变量。

要点总结

  • __filename 返回当前模块文件的绝对路径(含文件名)
  • 配合 path 模块可提取文件名、扩展名、目录名
  • 用于日志记录、条件判断等场景
  • 与 __dirname 配合使用处理文件路径

📝 发现内容有误?点击此处直接编辑

← 上一篇 Node.js __dirname
下一篇 → Node.js console 控制台对象
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库