【问题标题】:Environment variables in NodeJs using cPanel使用 cPanel 的 NodeJs 中的环境变量
【发布时间】:2020-07-22 04:26:08
【问题描述】:

所以我将 cPanel 与 Setup Node.js App 插件一起用于 Next.js 应用程序。 (不要问为什么是 cPanel)

一切都在开发中按预期工作,除了生产环境变量,我从 cPanel 界面手动设置它们,我重新启动/停止应用程序,在服务器上记录 process.env,我没有看到env 变量在那里(不是说在尝试调用它们时它们是未定义的)。

做的时候 res.json(JSON.stringify(process.env));我得到了一堆变量,除了我在cPanel变量界面中手动编写的变量。

将这些变量存储为密钥对我来说很重要,因为它们是 API 凭据。

有人知道我可能配置错误或遇到了这个问题吗?

【问题讨论】:

  • 你是如何设置这个环境变量的?
  • 我从 cPanel 的“Setup Node.js App”插件中存在的界面添加了它们,在我选择编辑/创建应用程序后,我在末尾找到一个名为“环境变量”的列这页纸。将它们添加到那里并预计会起作用。
  • 我正在通过 cPanel 使用 Node.js express 应用程序。但它无法读取 cPanel 中定义的环境。我不想在 .env 文件中保留密钥。看起来它在 cPanel Node.js 模块上有一个错误。
  • 我使用了dotenv的环境变量,但似乎以**$**开头的变量的值会有问题。
  • 嗨,express.js 应用程序有什么问题吗?我遇到了同样的错误,但我从未使用过 next.js

标签: node.js environment-variables cpanel next.js production-environment


【解决方案1】:

没关系,找到答案了,显然是 Next.js 配置错误。我必须在next.config.js 中添加以下代码行才能读取构建版本的环境变量。

require('dotenv').config();

module.exports = {
  env: {
    EMAIL_NAME: process.env.EMAIL_NAME,
    EMAIL_PASSWORD: process.env.EMAIL_PASSWORD,
    GETRESPONSE_API_KEY: process.env.GETRESPONSE_API_KEY
  }
};

其中EMAIL_NAME、EMAIL_PASSWORD、GETRESPONSE_API_KEY是我在cPanel界面上定义的变量

【讨论】:

  • 嗨,express.js 应用程序有什么问题吗?我遇到了同样的错误,但我从未使用过 next.js
猜你喜欢
  • 1970-01-01
  • 2018-08-03
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 2020-01-23
  • 1970-01-01
  • 2018-01-21
相关资源
最近更新 更多