Javascript node.js知道发生请求的文件
我有两个文件Javascript node.js知道发生请求的文件,javascript,node.js,module,require,Javascript,Node.js,Module,Require,我有两个文件 // file1.js //some js code that will do what I ask in the question module.exports = myFunc //file2.js require('./file1') file1.js是否可能以任何方式知道谁需要它?所以当file2需要file1时,file1会知道它是file2吗 您注意到希望使用file1s功能创建与调用者同名的文件。您可以通过使用模块中的变量来实现这一点 使用file1时只需传递此变
// file1.js
//some js code that will do what I ask in the question
module.exports = myFunc
//file2.js
require('./file1')
file1.js是否可能以任何方式知道谁需要它?所以当file2需要file1时,file1会知道它是file2吗 您注意到希望使用
file1
s功能创建与调用者同名的文件。您可以通过使用模块中的变量来实现这一点
使用file1
时只需传递此变量,而不是尝试访问调用者。例如:
require('./file1')(__filename)
其中file1
有如下内容:
module.exports = filename => {
// create file here
}
虽然这可以解决您的问题,但这似乎是一个奇怪的要求,而且可能有更好的方法来实现您真正想要的。您注意到,您希望使用
file1
s功能来创建与调用者同名的文件。您可以通过使用模块中的变量来实现这一点
使用file1
时只需传递此变量,而不是尝试访问调用者。例如:
require('./file1')(__filename)
其中file1
有如下内容:
module.exports = filename => {
// create file here
}
虽然这可以解决您的问题,但这似乎是一个奇怪的要求,而且可能有更好的方法来实现您真正想要的。您为什么要这样做?如果两个模块都需要一个怎么办?我的js fu很弱,但我想让file1创建一个名为File2的文件如果要调试,请查看
newerror().stack
。如果您想将其用于逻辑,请不要添加抽象层,这样您就可以首先以不同的方式调用它。@PaulS。因此,如果它是require('file3')(_filename),并且file3将调用file1中的逻辑并接收到文件名,那就更好了?我们仍然不知道您要做什么。你在调试什么东西吗?开发日志库?有多种方法可以实现您告诉我们的功能,但通常都不是必需的,可以用通用/基本编程模式代替。您为什么要这样做?如果两个模块都需要一个怎么办?我的js fu很弱,但我想让file1创建一个名为File2的文件如果要调试,请查看newerror().stack
。如果您想将其用于逻辑,请不要添加抽象层,这样您就可以首先以不同的方式调用它。@PaulS。因此,如果它是require('file3')(_filename),并且file3将调用file1中的逻辑并接收到文件名,那就更好了?我们仍然不知道您要做什么。你在调试什么东西吗?开发日志库?有多种方法可以完成您告诉我们的任务,但通常这不是必需的,可以用通用/基本编程模式代替。