未定义的 process.env 变量与 dotenv 和 nodejs

新手上路,请多包涵

我对 dotenv 包有疑问。

我的应用程序文件夹:

  |_app_folder
      |_app.js
      |_password.env
      |_package.json

我当然安装了 dotenv,但是当我尝试记录一个 process.env 变量时,结果总是未定义,请你帮帮我?

密码.env :

 //password.env
CLIENT_ID=xxxxxxxx

应用程序.js

 //app.js
const express = require('express');
const app = express();
const Twig = require("twig");

//Require dotenv
require('dotenv').config();

// Setting the Twig options
app.set("twig options", {
    allow_async: true,
    strict_variables: false
});

app.get('/', function (req, res) {
  //Trying to log it
  console.log(process.env.CLIENT_ID);
  //
  res.render('index.twig', {
    date : new Date().toString()
  });
});

app.get('/instagram',function(req,res){
  // Building the URL
  let url = 'https://api.instagram.com/oauth/authorize/?client_id=';
  // Redirect to instagram for oauth
  res.redirect(url);
})

app.listen(3000, function () {
  console.log('Running');
})

感谢您的时间。

原文由 thomasA 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 416
2 个回答

默认情况下,dotenv 包只加载名为 .env 如果你想加载另一个文件,你需要指定路径

require("dotenv").config({ path: "path/to/file" })

资源:

https://www.npmjs.com/package/dotenv

原文由 Patrick Hollweck 发布,翻译遵循 CC BY-SA 4.0 许可协议

我有一段时间遇到了同样的问题,结果你只需要将 .env 文件放在目录的根目录(最顶层)中。

我知道这篇文章已经过时了,但我只是想确保没有人再为如此简单的任务而苦恼。

原文由 curtis Arrisol 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题