为什么当我在使用Express构建的Node.js后端服务器中将其设置为环境变量时,我的API密钥显示为'undefined'?

yuvru6vn  于 2023-06-05  发布在  Node.js
关注(0)|答案(2)|浏览(167)

当我将API_KEY设置为环境变量时,它显示为'undefined'
当我将API_KEY设置为环境变量时,它显示为“undefined”。当我硬编码API Key时,API调用可以工作,所以这不是密钥的问题。我还可以看到它的值在日志中是'undefined'。我试图从一个用express构建的后端服务器(server.js)访问它。我在项目后端目录的根目录中创建了一个单独的.env文件(与server.js处于同一级别)。
我已经安装了dot env,并在server.js文件中包含了'import dotenv from dot env'和dotenv.config。我在下面包含了server.js、.env和package.json文件。
server.js

import express from "express";
import cors from "cors";
import axios from "axios";
import dotenv from "dotenv";

dotenv.config();

const PORT = 8000;

const app = express();

app.use(cors());

app.get("/hello", (req, res) => {
  res.json("Hello World");
});

app.get("/test-cases", async (req, res) => {
  
  const API_KEY = process.env.REACT_APP_OPENAI_API_KEY;
  console.log(API_KEY);

.env

# Not a real API KEY!!!!!
REACT_APP_OPENAI_API_KEY=sk-NgPdmiXotwLWvasdsddsfkFJG4bnvnod3BwRPTsPaeUv

package.json

{
  "name": "test-genie-backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start-backend": "nodemon src/server.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.4.0",
    "cors": "^2.8.5",
    "dotenv": "^16.1.0",
    "express": "^4.18.2"
  }
}
irtuqstp

irtuqstp1#

不妨试试这个:

import * as dotenv from 'dotenv'
dotenv.config()
jw5wzhpr

jw5wzhpr2#

将导入语句替换为:

import * as dotenv from 'dotenv'

或尝试使用require语法

const dotenv = require("dotenv");

相关问题