gpt4 book ai didi

javascript - 查找调用函数的文件的位置(nodejs)

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:58 24 4
gpt4 key购买 nike

如果从文件内调用模块的方法,我可以从模块内得知该文件的位置吗?所以

// my-module.js
module.exports = {
method: function () {
// in here I would like to detect the path to my-app.js
}
}

// my-other-module.js
require('my-module').method();

我想要从 my-module.js 中访问 my-other-module.js 的 __filename 。我不想将 __filename 作为参数传递

最佳答案

对于实用程序日志记录,您可以使用它(我使用了类似的东西):

module.exports  = {
method: function () {
var myError = new Error();
var trace = myError.stack.split('\n');
trace = trace[1];

var filename = trace.substr(trace.lastIndexOf('/') + 1);
filename = filename.substr(0, filename.indexOf(':'));

console.log('filename', filename);
}
};

就我而言,我保存了“e.stack”,因为您有所有错误跟踪(所有文件跟踪)。小心这种方式,因为如果您将此代码移动到名为“getFilename”的函数,那么您需要修改代码的某些内容(因为跟踪会有所不同,也许在这个使用trace=trace[2]移动代码的示例中会足够)。

更新:在 github 上添加存储库示例

https://github.com/josemato/stackoverflow/tree/master/js-error-trace-get-filename

关于javascript - 查找调用函数的文件的位置(nodejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com