我怎么写这个回到父2层去找文件?

fs.readFile(__dirname + 'foo.bar');

当前回答

如果另一个模块调用你的,你仍然想知道正在运行的主文件的位置,你可以使用@Jason的代码修改:

var path = require('path'),
    __parentDir = path.dirname(process.mainModule.filename);

fs.readFile(__parentDir + '/foo.bar');

通过这种方式,您将获得实际运行的脚本的位置。

其他回答

如果另一个模块调用你的,你仍然想知道正在运行的主文件的位置,你可以使用@Jason的代码修改:

var path = require('path'),
    __parentDir = path.dirname(process.mainModule.filename);

fs.readFile(__parentDir + '/foo.bar');

通过这种方式,您将获得实际运行的脚本的位置。

你可以使用

path.join(__dirname, '../..');

我在运行电子应用程序我可以通过path。resolve()获取父文件夹

父1级:路径。解析(__dirname, '..') + '/'

父2级:路径。解决(__dirname”. .', '..') + '/'

如果你不确定父结点在哪里,这个会给你路径;

var path = require('path'),
    __parentDir = path.dirname(module.parent.filename);

fs.readFile(__parentDir + '/foo.bar');

我知道这有点挑剔,但到目前为止,所有的答案都不太正确。

path.join()的目的是消除调用者知道使用哪个目录分隔符的需要(使代码与平台无关)。

从技术上讲,正确答案应该是这样的:

var path = require("path");

fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));

我本想把这句话作为对Alex Wayne的回答的评论,但还不够代表!

编辑:根据用户1767586的观察