【发布时间】:2015-04-25 09:47:36
【问题描述】:
我正在尝试从需要模块功能的地方获取原始文件名。我知道你可以使用__filename 获取当前文件,但我想获取原始文件。
例如,我有一个简单的模块
module.js
module.exports(function() {
return {
print : function(message) {
console.log(__filename + ' ' + message);
};
}
});
app.js
var module = require('./module')();
module.print('hello');
最终发生的事情是它会打印module.js hello,但我真的很想看到app.js hello。
我正在探索获取它的方法,我知道您可以使用 console.trace 查看调用堆栈,但我无法解析它来做我想做的事。
现在我已经通过让print 函数接受另一个参数来解决这个问题,您只需从app.js 中传递__filename,但我有点想找到一个我不需要的解决方案这样做。
【问题讨论】:
-
以及将其传递给模块有什么问题,如
var module = require('./module')(__filename); -
没什么问题,就是想知道有没有可能。如果不可能,那也是一个完全可以的答案。
-
@aug 我的回答解决了你的难题吗?
-
@Swivel 嘿,感谢您的跟进!哇,确实如此!对不起,我从来没有见过 :) 接受
标签: node.js module console require