Опитвам се да получа оригиналното име на файл от мястото, откъдето се изисква функцията на модула. Знам, че можете да използвате __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
да приема друг параметър и вие просто предавате __filename
от app.js
, но искам да намеря решение, при което не трябва да правя това.
var module = require('./module')(__filename);
- person adeneo   schedule 24.02.2015