node dotenv无效

 徐毛毛的大猫儿 发布于 2022-12-10 21:53

我正在尝试使用节点dotenv模块,它不适合我.我在config/config.js上有一个文件,其中包含以下内容:

'use strict';

var dotenv = require('dotenv');
dotenv.load();
console.log('config');

我的app文件夹的根目录下也有一个名为.env的文件.我也有像TWILIO_ACCOUNT_SID这样的环境变量.这是我尝试在某个函数中使用环境变量时经历的过程:

$ node
> require('./config/config.js');
config
{}
> process.env.TWILIO_ACCOUNT_SID
undefined

我在.env文件中定义了TWILIO_ACCOUNT_SID,但是当我尝试在控制台上输出值时,我得到的错误是未定义的.如果您对如何解决此问题有任何建议,我将非常感激.

7 个回答
  • 在我的情况下,每次我尝试使用密钥表单.env文件时.env,它返回process.env.MY_KEY

    因为我将文件命名undefined为不被认为是keys.env文件,我在这个问题上遭受了两个小时的困扰

    所以这是 .env

      确保文件名是".env"(我认为".env.test"是可以接受的)

      .env使用此声明确保您在申请中要求它.env.test

      确保require('dotenv').config();文件是.env.

      确保你遵循DB_HOST=localhost这样的.env,因为不需要用双引号或单引号将它们包起来

    另请查看npm网站上的软件包文档https://www.npmjs.com/package/dotenv

    希望这能节省您的时间

    2022-12-11 02:09 回答
  • 我没有像在dotenv模块文档中那样将我的环境变量放在正确的格式中,例如我正在导出TWILIO_CALLER_ID ="+ wwehehe",因此dotenv模块没有正确解析我的文件.当我注意到我从声明中删除了export关键字,一切正常.

    2022-12-11 02:09 回答
  • 我解决了使用

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

    或使用绝对路径:

    C:\\asd\\auhsd\\.env
    

    如果他没有找到.env文件,他会离开undefined

    2022-12-11 02:13 回答
  • 我有同样的问题。我意识到我的文件是以某种方式编码的UCS-2 BE BOM。将我的.env文件转换为UTF-8固定的文件(例如,您可以使用Notepad ++轻松地完成该操作)。

    2022-12-11 02:15 回答
  • 确保尚未设置变量。Dotenv不会覆盖它们。

    如果设置了变量,则必须将其删除。在powershell中,您可以使用以下命令- 如此处所述:

    Remove-Item Env:\MyTestVariable
    

    2022-12-11 03:08 回答
  • 为您节省一些故障排除时间并记录您的需求呼叫,例如:

    console.log(require('dotenv').config())
    

    您应该看到一个错误,其中包含有关该问题的更多详细信息。

    2022-12-11 03:08 回答
  • 最近有同样的问题.请检查.env文件并执行以下操作:

    key=value
    

    代替

    key:value
    

    2022-12-11 03:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有