Как получить файл, используя относительный путь (аргумент) в NodeJS - PullRequest
0 голосов
/ 10 июля 2020

Я хочу получить файлы, используя myFunction()

как получить файл, если пользователь передает относительный путь в качестве аргумента функции

.. / где-то / index. js

import {myFunction} from "../pathTo/app.js";
    
myFunction("../relative/path/file.txt");

прим. js

export const myFunction = (path) => {
   fs.readFile(path); //=> How to get the file here
};

1 Ответ

1 голос
/ 10 июля 2020

Предположим, у нас есть терминал, выполняющий файл node.js, и терминал открыт в

/home/user

И путь к node.js файлу

/home/user/test

Тогда мы можем получить относительный путь к файлу двумя разными способами

var path = require("path");

let path1=path.join('__dirname','../relative/path/file.txt');
fs.readFile(path1);
let path2=path.join('./','../relative/path/file.txt');
fs.readFile(path1);

Здесь '__ dirname' представляет собой фактический путь, по которому текущий node.js присутствует исполняемый файл, т.е.

/ home / user / test

и '. /' представляет путь, откуда node.js файл выполняется, т.е.

/ home / user

Путь, по которому терминал в настоящее время находится и выполняет данный node.js файл

Следовательно,

path1 будет представлять путь относительно каталога, который содержит node.js файл

path1='/home/user/test/../relative/path/file.txt'
     = '/home/user/test/relative/path/file.txt'

path2 будет представлять реальный путь к месту, откуда запускается терминал

path2='/home/user/../relative/path/file.txt'
     ='/home/relative/path/file.txt'

Разница между __dirname и ./ в Node.js

Путь Node.js Документация

...