在尝试获取.env文件时,我们在从server.js文件中访问API-key时遇到了问题。如果我们手动地将API-键添加到server.js中的URL中,它就能工作,因此问题似乎是server.js和..env文件之间的连接。我们已经安装了npm。在.env文件中,我们编写了如下所示的键:WEATHER_API_KEY = XXXXXXXXXXXX
有人知道我们做错了什么吗?
import express from "express";
import cors from "cors";
import mongoose from "mongoose";
import crypto from "crypto";
import bcrypt from "bcrypt";
import request from "request";
import dotenv from "dotenv";
// import { stringify } from "querystring";
const mongoUrl = process.env.MONGO_URL || "mongodb://localhost/project-mongo";
mongoose.connect(mongoUrl, { useNewUrlParser: true, useUnifiedTopology: true });
mongoose.Promise = Promise;
const port = process.env.PORT || 8080;
const app = express();
dotenv.config();
app.get("/home", (req, res) => {
let city = req.query.city;
// const request = require("request");
// const options = {
// url: `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${process.env.WEATHER_API_KEY}`,
// method: "GET",
// headers: {
// Accept: "application/json",
// },
// };
const key = "*******************";
const requesturl = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${key}`;
request(requesturl, function (error, response, body) {
let data = JSON.parse(body);
console.log(response);
if (response.statusCode === 200) {
res.send(`The weather in ${city} is ${data.weather[0].description}`);
} else {
res.send(data.message);
}
});
console.log(process.env.WEATHER_API_KEY);
});发布于 2022-06-08 14:56:18
你可以试试这个
import 'dotenv/config';代替import dotenv from "dotenv";并删除dotenv.config();调用。
资料来源和解释:https://github.com/motdotla/dotenv#how-do-i-use-dotenv-with-import
并将请求URL (您可能为了测试目的而更改)更新到
const requesturl = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${process.env.key}`;另外,尝试在没有空格的情况下定义键,尽管这不太可能是根本原因。
WEATHER_API_KEY="XXXXXXXXXXXX"发布于 2022-11-17 09:34:29
虽然这个问题不是关于反应的,但它可能对那些使用React的人有帮助。对于REACT_APP_,环境变量必须从REACT_APP_前缀开始,否则它将无法工作。
REACT_APP_WEATHER_API_KEY="XXXXXXXXXXXX"
https://stackoverflow.com/questions/72547483
复制相似问题