我有一个 NodeJS 模块,它在特定目录中的文件系统上执行大量工作。我希望模块内的所有文件系统操作都相对于该目录完成 - (我们称之为 /home/me/data
)。
我意识到我可以使用 process.chdir("/home/me/data"); 更改当前工作目录,但这会弄乱正在使用我的模块的任何其他模块的工作目录。
有没有办法让子模块可以拥有与其父模块不同的工作目录?
我不想将变量传递到每个子模块以附加到fs.readFile(filepath);
调用的文件路径。
有什么优雅的方法可以实现这一点吗?
P.s.子进程生成/ fork 在这里不合适。
最佳答案
没有。 cwd 在 UNIX 中是每个进程一个。一般来说,在中显式引用cwd
的代码通常会被误导。它仅对某些实用程序(例如 git)有意义,即使如此,操作系统也会为您处理相对于绝对的转换。您是否考虑过使用 path.resolve
扩展路径,以便在将它们传递到相关模块之前它们是绝对的?
关于node.js - 我可以在不使用 process.chdir() 的情况下更改 require( )'d module' s cwd ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30240581/