首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从..env文件访问API-key

无法从..env文件访问API-key
EN

Stack Overflow用户
提问于 2022-06-08 14:26:27
回答 2查看 568关注 0票数 1

在尝试获取.env文件时,我们在从server.js文件中访问API-key时遇到了问题。如果我们手动地将API-键添加到server.js中的URL中,它就能工作,因此问题似乎是server.js和..env文件之间的连接。我们已经安装了npm。在.env文件中,我们编写了如下所示的键:WEATHER_API_KEY = XXXXXXXXXXXX

有人知道我们做错了什么吗?

代码语言:javascript
复制
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);
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-08 14:56:18

你可以试试这个

代码语言:javascript
复制
import 'dotenv/config';

代替import dotenv from "dotenv";并删除dotenv.config();调用。

资料来源和解释:https://github.com/motdotla/dotenv#how-do-i-use-dotenv-with-import

并将请求URL (您可能为了测试目的而更改)更新到

代码语言:javascript
复制
const requesturl = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${process.env.key}`;

另外,尝试在没有空格的情况下定义键,尽管这不太可能是根本原因。

代码语言:javascript
复制
WEATHER_API_KEY="XXXXXXXXXXXX"
票数 0
EN

Stack Overflow用户

发布于 2022-11-17 09:34:29

虽然这个问题不是关于反应的,但它可能对那些使用React的人有帮助。对于REACT_APP_,环境变量必须从REACT_APP_前缀开始,否则它将无法工作。

REACT_APP_WEATHER_API_KEY="XXXXXXXXXXXX"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72547483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档