Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js知道发生请求的文件_Javascript_Node.js_Module_Require - Fatal编程技术网

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中的逻辑并接收到文件名,那就更好了?我们仍然不知道您要做什么。你在调试什么东西吗?开发日志库?有多种方法可以完成您告诉我们的任务,但通常这不是必需的,可以用通用/基本编程模式代替。