You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中使用dotenv加载.env环境变量失败的问题排查

问题:使用dotenv加载环境变量失败(WhatsApp聊天机器人开发)

我正在开发WhatsApp聊天机器人,尝试用dotenv包将API密钥存储到.env文件中,但出现环境变量未赋值的错误。

原教程index.js片段

import { createBot } from 'whatsapp-cloud-api';
const { createBot } = require('whatsapp-cloud-api');

(async () => {
  try {
    // replace the values below
    const from = 'YOUR_WHATSAPP_PHONE_NUMBER_ID';
    const token = 'YOUR_TEMPORARY_OR_PERMANENT_ACCESS_TOKEN';
    const to = 'PHONE_NUMBER_OF_RECIPIENT';
    const webhookVerifyToken = 'YOUR_WEBHOOK_VERIFICATION_TOKEN';

我修改后的index.js片段

const { createBot } = require('whatsapp-cloud-api');
const dotenv = require('dotenv');
dotenv.config();

(async () => {
  try {
    const from = process.env.FROM;
    const token = process.env.TOKEN;
    const to = process.env.TO; 
    const webhookVerifyToken = process.env.WEBHOOKVerifyToken;

当前的.env文件内容

const FROM = YOUR_WHATSAPP_PHONE_NUMBER_ID
const TOKEN = YOUR_TEMPORARY_OR_PERMANENT_ACCESS_TOKEN
const TO = PHONE_NUMBER_OF_RECIPIENT
const WEBHOOKVerifyToken = YOUR_WEBHOOK_VERIFICATION_TOKEN

错误原因及修正步骤

1. .env文件格式不符合dotenv要求

dotenv的.env文件禁止使用const声明变量,正确格式为KEY=VALUE(值若包含空格/特殊字符需用引号包裹):

修正后的.env文件:

FROM=YOUR_WHATSAPP_PHONE_NUMBER_ID
TOKEN=YOUR_TEMPORARY_OR_PERMANENT_ACCESS_TOKEN
TO=PHONE_NUMBER_OF_RECIPIENT
WEBHOOK_VERIFY_TOKEN=YOUR_WEBHOOK_VERIFICATION_TOKEN

2. 环境变量命名不一致(大小写敏感)

环境变量名区分大小写,建议使用蛇形命名(下划线分隔)统一规范。将WEBHOOKVerifyToken改为WEBHOOK_VERIFY_TOKEN后,同步修改index.js中的对应代码:

const webhookVerifyToken = process.env.WEBHOOK_VERIFY_TOKEN;

3. 额外验证项

  • 确认已安装dotenv:执行npm install dotenv
  • 确保.env文件位于项目根目录,与index.js同级
  • 修改.env文件后需重启Node.js服务,新配置才会生效

内容的提问来源于stack exchange,提问作者matthew_olckers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:17:22