我在Firebase上运行了一个expressjs应用,并且从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'
查找文件,因此解决方案必须是更改我的参数以包含文件夹'functions'吗?
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
文件夹中获取文件的正确路径?
答案 0 :(得分:1)
使用路径库
var path = require('path');
var swagger_path = path.resolve(__dirname,'./api/swagger/swagger.yaml');
console.log(swagger_path);
这将在任何环境中获取正确的路径。