REACT_APP_KEY 来自 root 中的 .env 未被访问
REACT_APP_KEY from .env in root not being accessed
我正在尝试将我的 API 密钥放入我的项目根目录中的 .env 文件中(与包 json 文件处于同一级别)
当我控制台记录 REACT_API_KEY 时,它被读取为未定义
我已经多次重启服务器,一切都保存了。
我建议使用名为 dotenv 的库。这将读取您的 .env
文件。
假设您有一个环境变量:REACT_API_KEY=APIKEY
.
您可以像这样访问值:
require('dotenv').config();
console.log(process.env.REACT_API_KEY);
这将记录:APIKEY
这将在后端,然后您需要使用某种形式的 node.js 库将数据提供给前端。这是一个使用 express:
的例子
const express = require('express');
const app = express();
require('dotenv').config();
app.get('/apikey', (req, res) => {
res.send(process.env.REACT_API_KEY);
})
现在,您需要在前端创建一个 GET
请求到此 uri 以实际获取数据。这是一个使用 axios:
的例子
axios.get('/apikey').then((res) => {
console.log(res);
// res will be your API key in a String format
})
显然,因为此密钥隐藏在后端,所以您不希望用户能够在您的 API 中访问此端点。您可以使用 nginx.
等网络服务器配置您希望用户能够访问的端点
这对于一个环境变量来说可能看起来很多,尽管这些步骤将解决您将来的许多问题,例如用户登录和注册表以及其他数据。
这是没有 ReactJS 构建过程的方法。如果您使用 create-react-app 来构建您的应用程序,您可以使用在构建过程中嵌入的 React 环境变量。在 react documentation
中查看
您需要在开头追加process.env
。
我正在尝试将我的 API 密钥放入我的项目根目录中的 .env 文件中(与包 json 文件处于同一级别)
当我控制台记录 REACT_API_KEY 时,它被读取为未定义
我已经多次重启服务器,一切都保存了。
我建议使用名为 dotenv 的库。这将读取您的 .env
文件。
假设您有一个环境变量:REACT_API_KEY=APIKEY
.
您可以像这样访问值:
require('dotenv').config();
console.log(process.env.REACT_API_KEY);
这将记录:APIKEY
这将在后端,然后您需要使用某种形式的 node.js 库将数据提供给前端。这是一个使用 express:
的例子const express = require('express');
const app = express();
require('dotenv').config();
app.get('/apikey', (req, res) => {
res.send(process.env.REACT_API_KEY);
})
现在,您需要在前端创建一个 GET
请求到此 uri 以实际获取数据。这是一个使用 axios:
axios.get('/apikey').then((res) => {
console.log(res);
// res will be your API key in a String format
})
显然,因为此密钥隐藏在后端,所以您不希望用户能够在您的 API 中访问此端点。您可以使用 nginx.
等网络服务器配置您希望用户能够访问的端点这对于一个环境变量来说可能看起来很多,尽管这些步骤将解决您将来的许多问题,例如用户登录和注册表以及其他数据。
这是没有 ReactJS 构建过程的方法。如果您使用 create-react-app 来构建您的应用程序,您可以使用在构建过程中嵌入的 React 环境变量。在 react documentation
中查看您需要在开头追加process.env
。