【问题标题】:mongoose and express not reading from .env filemongoose 和 express 不从 .env 文件中读取
【发布时间】:2021-03-26 10:18:19
【问题描述】:

我在将 .env 文件导入我的项目时遇到了一些问题。我有后备方案,所以直到我几乎完成我的项目并且在实现无法加载的贝宝按钮时遇到问题时才注意到这个问题。现在我正在测试,我意识到我所有的 env 文件都没有被导入:/

我是使用 express 的新手,但据我所知,我认为我所做的一切都是正确的(但显然不是大声笑)。我已经导入了所有依赖项,并且正在使用 dotenv:

import express from "express";
import mongoose from "mongoose";
import dotenv from "dotenv";

我用于导入我的 paypal .env 文件的代码:

app.get("/api/config/paypal", (req, res) => {

res.send(process.env.PAYPAL_CLIENT_ID || "sb"); });

我的 .env 文件(位于我的文件夹结构的根目录)

PAYPAL_CLIENT_ID= my key info here without quotes

代码最终被调用的地方

const addPayPalScript = async () => {
  }, [dispatch, orderId]);        const { data } = await Axios.get('/api/config/paypal');
      const script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = `https://www.paypal.com/sdk/js?client-id=${data}`;
      script.async = true;

我不确定为什么此配置不起作用。我试图将 env 文件移动到与调用它的文件相同的文件夹中,但这只是无法编译并出现错误。 (我有一个前端和一个后端文件夹)我试图将 env 文件移动到后端文件夹的根目录,但它无法编译并显示相同的错误消息。似乎项目文件的根目录是 env 文件的正确位置,并且我可以在网上找到的所有信息似乎我的代码都可以,但是当我点击它时我仍然无法加载 paypal 按钮的链接。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: express mongoose environment-variables dotenv


    【解决方案1】:

    这是你应该做的:

    而不是import dotenv from "dotenv";

    使用:

    import {config} from "dotenv"; config()

    dotenv library 读取.env 配置所需的唯一功能是config,调用它我已经完成config()

    现在您可以通过以下方式访问值:process.env.YOUR_ENV_VARIABLE_NAME

    【讨论】:

    • 感谢您的评论。我导入了 dotenv 而不是 config 但我忘了提到我确实使用 dotenv.config(); 调用了配置;也许这与 Paypal 本身有关。我开始认为错误出在 Paypal 端的路由上。
    猜你喜欢
    • 2021-09-09
    • 1970-01-01
    • 2021-10-25
    • 2016-03-29
    • 2014-12-09
    • 2021-12-12
    • 1970-01-01
    • 2020-10-06
    • 2022-08-19
    相关资源
    最近更新 更多