You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从子文件中获取调用它的父文件名?

如何在child.js中打印调用它的parent.js文件名

要实现这个需求,你可以借助Node.js模块系统自带的module.parent对象获取调用当前模块的父模块信息,再结合path模块提取出文件名。下面是具体的实现方案:

1. 编写parent.js代码

在parent.js里正常引入child.js即可:

// parent.js
require('./child.js');

2. 编写child.js代码

在child.js中,通过module.parent.filename拿到父模块的完整路径,再用path.basename()提取出纯文件名:

// child.js
const path = require('path');

// 获取当前child.js的文件名
const childFileName = path.basename(__filename);
// 获取调用当前模块的父模块(parent.js)的文件名
const parentFileName = path.basename(module.parent.filename);

console.log(`${childFileName} is being called by ${parentFileName}`);

3. 运行验证

执行命令node parent.js,你会看到预期输出:

child.js is being called by parent.js

额外提示

  • 如果你的项目存在多层模块调用(比如A.js调用B.js,B.js再调用child.js),module.parent只会返回直接调用它的模块(也就是B.js);如果需要获取最顶层的入口文件,可以改用path.basename(process.mainModule.filename)。
  • 若child.js是直接被node命令执行的(比如node child.js),module.parent会是null,实际使用时可以加个判断避免报错:
const parentFileName = module.parent ? path.basename(module.parent.filename) : 'no parent module';

内容的提问来源于stack exchange,提问作者thehme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:20:21