在节点中设置环境变量,特别是GOOGLE_APPLICATION_CREDENTIALS

问题描述 投票:0回答:3

我有一个节点应用程序,我正在尝试使用谷歌语言API。我想将环境变量GOOGLE_APPLICATION_CREDENTIALS设置为同一目录中的json文件(同步到package.json和app.js)。

我在我的app.js文件中尝试过process.env.GOOGLE_APPLICATION_CREDENTIALS = "./key.json";(使用快递),但它无效。我也试过把"GOOGLE_APPLICATION_CREDENTIALS":"./key.json"放在我的package.json中,但是效果不好。当我在终端export GOOGLE_APPLICATION_CREDENTIALS="./key"中运行时它会工作。

这是错误消息:

ERROR: Error: Unexpected error while acquiring application default credentials: Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.

任何提示都表示赞赏,谢谢!

node.js google-cloud-platform environment-variables
3个回答
0
投票

您设置的GOOGLE_APPLICATION_DEFAULT环境变量由google客户端库访问 - 它不会使用相对路径,您需要设置绝对路径。


2
投票

在互联网上阅读有关此问题的阅读材料后,解决此问题的唯一方法是为节点执行声明环境变量:

GOOGLE_APPLICATION_CREDENTIALS="./key.json" node index.js

因为我能够从我的服务器控制台打印令牌,但是当我运行节点应用程序时,库无法检索系统环境值,但设置变量以便执行它能够检索值。


0
投票

可能是您的操作系统中的环境变量未设置。例如,在Linux中,您通常必须在执行应用程序的终端中设置GOOGLE_APPLICATION_CREDENTIALS。

 export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

你有另一个选择是通过代码传递json路径。 documented这个过程使用Node.js和云存储。

© www.soinside.com 2019 - 2024. All rights reserved.