Не могу прочитать файл в папке функций - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть приложение expressjs, работающее на Firebase, и из моего firebase-express/functions/index.js я пытаюсь прочитать файл, расположенный по адресу functions/api/swagger/swagger.yaml.

const swaggerDocument = YAML.load('./api/swagger/swagger.yaml');

Когда я запускаю локально с firebase serve, я получаю следующую ошибку.

Error: ENOENT: no such file or directory, open 'C:\Users\Tulio\Desktop\firebase-express\api\swagger\swagger.yaml'
    at Error (native)
    at Object.fs.openSync (fs.js:642:18)
    at Object.fs.readFileSync (fs.js:510:33)
    at Function.Utils.getStringFromFile (C:\Users\Tulio\Desktop\firebase-express\functions\node_modules\yamljs\lib\Utils.js:284:19)
    at Function.Yaml.parseFile (C:\Users\Tulio\Desktop\firebase-express\functions\node_modules\yamljs\lib\Yaml.js:46:21)
    at Function.Yaml.load (C:\Users\Tulio\Desktop\firebase-express\functions\node_modules\yamljs\lib\Yaml.js:78:17)
    at Object.<anonymous> (C:\Users\Tulio\Desktop\firebase-express\functions\index.js:11:30)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)

Он ищет файл на 'C:\Users\Tulio\Desktop\firebase-express\api\swagger\swagger.yaml', поэтому решение должно состоять в том, чтобы изменить мой параметр, включив в него папку 'функции', верно?

const swaggerDocument = YAML.load('./functions/api/swagger/swagger.yaml');

Теперь я получаю еще одну ошибку, в которой путь отображается как:

no such file or directory, open 'C:\Users\Tulio\Desktop\firebase-express\functions\functions\api\swagger\swagger.yaml'

Обратите внимание на 'функции \ функции' ? По какой-то причине, когда я добавляю 'functions /' к пути, он добавляет другую 'functions /', делая путь недействительным.

Как получить правильный путь для файла в папке functions?

1 Ответ

0 голосов
/ 30 апреля 2018

Использование Путь Библиотека

var path = require('path');
var swagger_path =  path.resolve(__dirname,'./api/swagger/swagger.yaml');
console.log(swagger_path);

Это приведет к правильному пути в любой среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...