我正在尝试读取certs文件夹下的文件,如下所示:
-functions
|
--certs
|
---idp-public-cert.perm
这是我用来读取文件的代码:
fs.readFileSync(path.join(__dirname, 'certs/idp-public-cert.pem'))
。
运行该函数时,出现以下错误:
Error: ENOENT: no such file or directory, open '/srv/lib/certs/idp-public-cert.pem'
我将不胜感激任何机组人员如何做到这一点。预先感谢。
答案 0 :(得分:1)
只需使用相对路径certs/idp-public-cert.pem
读取文件即可。所有相对路径将相对于您部署的功能文件夹进行解释。不要尝试建立文件的完整路径,因为您不应该假设代码部署已有效地安装在服务器实例中。
答案 1 :(得分:0)
我发现用“ ./”或“ /”指定路径是很困难的-因为它需要从某个地方(例如OLDPWD或PWD)获取相对补丁,所以不确定它如何弄乱 但是我发现正确的解决方法是添加 路径的__dirname。 __dirname将给出functions目录的路径。 因此,如果您的函数位于/ home / username / firebase / functions / routes中,则__dirname会向您显示。 因此,如果您有一个文件/ home / username / firebase / abc /,则必须指定: fs.readFileSync(__ dirname +“ ../ abc /”
希望这可以节省其他人的时间!!我为此浪费了很多时间,这实在令人沮丧,并且因为不阅读文档而踢自己!