Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 从另一个文件导出函数时,没有这样的文件或目录_Javascript_Node.js - Fatal编程技术网

Javascript 从另一个文件导出函数时,没有这样的文件或目录

Javascript 从另一个文件导出函数时,没有这样的文件或目录,javascript,node.js,Javascript,Node.js,src/test.js module.exports.test = function() { const { readFileSync } = require('fs'); console.log(readFileSync('test.txt', 'utf8').toString()) } index.js const { test } = require('./src/test.js'); test(); 这导致没有这样的文件或目录。当需要另一个目录中的文件时,module

src/test.js

module.exports.test = function() {
    const { readFileSync } = require('fs');
    console.log(readFileSync('test.txt', 'utf8').toString())
}
index.js

const { test } = require('./src/test.js');
test();

这导致没有这样的文件或目录。当需要另一个目录中的文件时,
module.exports
exports
是否不起作用?

执行类似操作时:

readFileSync('test.txt', 'utf8')
尝试从当前工作目录中读取
test.txt
。当前工作目录由主程序的启动方式以及程序启动时的当前工作目录决定。它与您的
src/test.js
模块所在的目录没有任何关系

因此,如果
test.txt
与您的
src/test.js
位于同一目录中,并且您希望从那里读取它,那么您需要手动构建一个引用模块目录的路径。要做到这一点,可以使用
\uuu dirname
,这是为指向模块所在目录的每个模块设置的一个特殊变量

在这种情况下,您可以执行以下操作:

const path = require('path');

module.exports.test = function() {
    const { readFileSync } = require('fs');
    console.log(readFileSync(path.join(__dirname, 'test.txt'), 'utf8').toString())
}

而且,这将可靠地从模块目录中读取
test.txt

您可能需要使用
/src/text.txt
作为路径。(假设在错误消息中显示的是“test.txt”,而不是“test.js”)@ChrisG
test.txt
test.js
位于同一目录中
index.js
不在同一目录中。。。这就是为什么我会遇到这个问题。但我想知道是否有一种方法可以在不移动文件的情况下正确地执行此操作?因为是的。我测试了你的代码,并用
/src/text.txt
修复了它。@ChrisG哦,我的错。掌心