Javascript 从另一个文件导出函数时,没有这样的文件或目录
src/test.jsJavascript 从另一个文件导出函数时,没有这样的文件或目录,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
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”)@ChrisGtest.txt
与test.js
位于同一目录中index.js
不在同一目录中。。。这就是为什么我会遇到这个问题。但我想知道是否有一种方法可以在不移动文件的情况下正确地执行此操作?因为是的。我测试了你的代码,并用/src/text.txt
修复了它。@ChrisG哦,我的错。掌心