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

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

当前回答

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

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

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

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

其他回答

试试这个:

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

请注意相对路径开头的正斜杠。

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

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

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

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

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

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

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

最简单的方法是使用path.resolve:

path.resolve(__dirname, '..', '..');

这也可以:

fs.readFile(`${__dirname}/../../foo.bar`);