我在 the_second_folder 中有nodejs代码,但我想从根文件夹运行它。当我从the_second_folder 运行代码时,我没有错误,但是当我从根文件夹运行代码时,由于包含,nodejs崩溃了。这是代码:
require('rootpath')(); //does not work
var file_to_include = "file.js";
eval(fs.readFileSync(file_to_include)+'');
这仅适用于我从 the_second_folder (它所在的位置)运行代码但在从根文件夹(文件夹树中为-1)运行时失败的情况。 错误正是包含file_to_include
我想知道的是,即使从根文件夹调用,我如何在相对文件夹范围内运行节点脚本。
修改
file_to_include ABSOLUTE_PATH
Error: ENOENT, no such file or directory 'file_to_include.js'
...
at Object.<anonymous> (/root/the_second_folder/socket.io/lib/client.js:3:9)
...
at Object.<anonymous> (/root/the_second_folder/socket.io/lib/index.js:12:14)
现在socket.io中发生了错误......对此有何想法?
答案 0 :(得分:0)
您可以使用全局__dirname
,它返回当前脚本的目录。
然后您可以执行以下操作:
var file_to_include = "file.js";
eval(fs.readFileSync(path.join(__dirname,file_to_include))+'');
但请问您为什么eval()
使用JS文件而不只是require()
呢?