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

Ron*_*n I 5 environment-variables node.js google-cloud-platform

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

我曾process.env.GOOGLE_APPLICATION_CREDENTIALS = "./key.json";在我的 app.js 文件中尝试过(使用 express),但它不起作用。我也试过放入"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.
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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

GOOGLE_APPLICATION_CREDENTIALS="./key.json" node index.js
Run Code Online (Sandbox Code Playgroud)

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


小智 0

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