【问题标题】:Not able to access dotnev variables无法访问 dotnev 变量
【发布时间】:2020-12-13 23:39:07
【问题描述】:

我在我的 nodeJs 应用程序中添加了一个 .env 文件,并将该文件添加到我的 app.js 的下面一行

require('dotenv').config();

我仍然无法访问环境变量。这里缺少什么?

.env文件内容

PORT: 3000
SPACE:"dev"
Password: "ABC"

我正在尝试使用它访问它

process.env.PORT

以“未定义”的形式出现

更新app.js

const express = require('express');
const app = express();
const cors = require('cors')
const path = require('path');
require('dotenv').config();')


process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;

app.use(express.json());

console.log(process.env.PORT)
app.listen(process.env.PORT || 3000);

module.exports = app;

【问题讨论】:

  • 你能分享你的.env文件和你用来访问环境变量的代码吗?
  • 您是如何尝试访问它们的?在您尝试访问它们之前是否已执行该行?该行的文件是否与.env文件在同一目录中?
  • .env 文件应该在根目录中。您能否在问题中添加更多细节?像错误或任何日志。
  • 这是您访问它们的方式process.env.PORT,在您的 .env 文件中它应该看起来像这样PORT=3001
  • @PrathameshMore 直接在根目录下

标签: javascript node.js dotenv


【解决方案1】:

.env 文件的参数应为:

SPACE=dev
Password=ABC

github上提到的例子repo

【讨论】:

  • 还是undefined
  • 更改 .env 文件后是否重启了服务器?
  • 是的,多次
  • 您可以分享您的 app.js 代码,以便我可以尝试找出问题所在吗?
  • 我已经用 app.js 代码更新了我的帖子。请看一下。
【解决方案2】:

将 .env 文件保存在 app.js 的同一路径中(server.js/index.js 或 main.js,无论您对根文件命名如何)。

.env 文件

PORT=3000
SPACE=DEV
PASSWORD=ABC

app.js 文件

require('dotenv').config()

console.log(process.env.PORT)
console.log(process.env.SPACE)
console.log(process.env.PASSWORD)

文件路径

/my-app
    app.js
    .env

【讨论】:

    【解决方案3】:

    你必须指定你的 .env 文件所在的路径,像这样

    require('dotenv').config({path: __dirname + '/../.env'});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 2018-10-17
      • 2015-11-03
      • 2015-12-07
      • 2018-01-10
      相关资源
      最近更新 更多