【问题标题】:Meteor with dotenv package for environment variables: "process" is not defined带有用于环境变量的 dotenv 包的 Meteor:未定义“进程”
【发布时间】:2022-01-12 07:24:05
【问题描述】:

我正在使用 Meteor 包 dotenv 为我的 API 密钥添加安全性:https://github.com/okgrow/meteor-dotenv 按照说明,我: 1. 在我的根目录下创建了一个名为“.env”的文件 2.在文件中输入“THIS_KEY=BLAH12345”样式的两个key 3.做了一个meteor调用函数返回process.env.THIS_KEY供客户端使用。

我收到 Referenceerror: process.env is not defined。对于普通节点,那里有很多答案,但对于 Meteor 来说不是这样。我是否错误地命名了我的文件?需要使用 Meteor 命令来激活某些东西吗?

【问题讨论】:

    标签: meteor environment-variables referenceerror env


    【解决方案1】:

    我遇到了同样的问题,并通过放置

    使其工作
    var secretThing = process.env.SECRET_THING
    

    服务器端,在if(Meteor.isServer)里面,然后把变量作为参数传给需要用到secret的东西的方法。

    Meteor.call("apiCall", secretThing);
    

    那么接收方法是这样的:

        apiCall: function (secretThing) {
            console.log(secretThing);
        }
    

    【讨论】:

      【解决方案2】:

      DotEnv 旨在从 .env 文件中读取环境变量,该文件通常位于 NodeJS 应用程序的根目录中。

      DotEnv 只是通过process.env 将它在 .env 文件中找到的变量与其他主机系统环境变量一起使用

      问题是,我不相信流星支持 .env 文件。这可能是由于应用程序的年龄。我个人认为他们应该优先解决这个问题。

      在流星应用程序中使用process.env 的唯一方法是设置要在主机系统上使用的变量。如果你使用的是 linux,它会是这样的

      export DB_PASSWORD=12345
      

      然后,您应该能够在应用程序运行时使用 process.env 读取 DB_PASSWORD。

      // You can only run process.env in server code
      
      if (Meteor.isServer) {
         const myDBPassword = process.env.DB_PASSWORD
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-28
        • 2019-02-03
        • 1970-01-01
        • 2017-07-09
        • 2017-03-13
        • 2020-03-27
        • 2021-11-19
        相关资源
        最近更新 更多