fs.existsSync () всегда возвращает false, когда путь имеет ../ - PullRequest
0 голосов
/ 31 марта 2019

У меня есть строка кода, о которой у меня есть проблема. По сути, цель состоит в том, чтобы проверить, существует ли файл с именем tech-bg.jpg в папке, расположенной в родительской папке, где находится файл JS.

Это код:

fs.existsSync(path.join('..', config.ASSET_URL, 'images', config.BG_AUTH))
console.log(path.join('..', config.ASSET_URL, 'images', config.BG_AUTH))

Выход на консоль:

../storage/images/tech-bg.jpg

Хотя файл существует, fs.existsSync() всегда возвращает false. Я попытался удалить path.join и вместо этого использовать формат строки, но он по-прежнему возвращает false.

Я также попытался использовать path.resolve, который имеет следующий вывод консоли:

C:\client_projects\tt\storage\images\tech-bg.jpg

Теперь у него есть полный путь, но все равно не повезло.

Структура каталогов:

root/
   .../storage
         ../images
            ./tech-bg.jpg
   ../router
        ./index.js

Я не очень опытен в API файловой системы NodeJS, поэтому кто-нибудь, пожалуйста, скажите мне, что я делаю не так здесь. Спасибо!

1 Ответ

0 голосов
/ 31 марта 2019
root/
   .../storage
         **../images**
            ./tech-bg.jpg
   ../router
        ./index.js

Основная проблема связана с "../images", поскольку папка с изображениями не является непосредственным дочерним элементом хранилища.

Здесь код работает нормально -

router => index.js

const fs=require("fs");
var isExists=fs.existsSync("../storage/images/tech-bg.jpg");
console.log(isExists);

Ниже приведена система каталогов и выходные данные узла -

Node output-

Directory system-

...