有没有办法从引用类中获取文件名?请注意这个例子已经过简化,以说明我正在尝试做什么(请不要开始建议记录库!)
//Logger1.js
class Logger1 {
}
//MainProcess.js
class MainProcess {
startChildProcess(Logger) {
//This extension doesn't work, but looking to find something similar that does:
Logger.fileName = () => {
return __filename
}
let loggerFileName = Logger.fileName() //Returns "Main.js" not "Logger1.js", so no good...
childProcess.fork(processFileName, [loggerFileName] )
}
}
//In a child process spawned by main:
loggerPath = process.argv[2]
let Logger = require(loggerPath)[path.basename(loggerPath).replace(".js","")]
let logger = new Logger()
我显然可以添加一个带字符串值的属性,或者一个返回__filename Logger1类的方法,但我宁愿避免使用它。有没有办法在MainProcess类中执行此操作,保持Logger1和任何其他外部代码清洁?
我没有传递记录器实例的原因是主进程然后创建子进程,并且这些子进程实例化他们自己的记录器。就我所知,没有办法将对象引用传递给子进程。