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

如何修复Cloudinary报错“Must supply api_key”的问题

问题根因与解决方案

你遇到的Must supply api_key报错基本是以下几个可排查的原因,按优先级逐一验证即可:

1. 调整app.js中模块的导入顺序

dotenv的配置代码必须放在所有需要用到环境变量的模块导入之前,很多人会犯的错误是先导入路由、cloudinary工具文件,再加载dotenv,这时候执行cloudinary.config()时环境变量还没被注入到process.env中,配置自然不生效。
你要保证app.js的代码顺序是:

// 第一行就加载dotenv
const path = require('path');
require('dotenv').config({
    path: path.join(__dirname, 'config', '.env')
});

// 再导入其他依赖、路由、工具模块
const express = require('express');
const productRouter = require('./routes/product');
// 其他导入...

上面同时用path.join(__dirname)处理了.env的路径,避免你启动项目时的工作目录不对导致找不到.env文件的问题。

2. 修正Cloudinary的导入方式

旧版本Cloudinary的默认导入存在配置不生效的已知问题,你需要改用官方推荐的v2版本导入,修改cloudinary.js的第一行代码:

// 把原来的 const cloudinary = require('cloudinary'); 替换成下面的
const cloudinary = require('cloudinary').v2;

3. 清理.env文件的多余引号

dotenv会自动把引号识别为值的一部分,如果你配置时加了单/双引号,会导致实际传入Cloudinary的凭证带多余符号,验证失败。把.env里的所有引号删掉即可:

CLOUDINARY_CLOUD_NAME=my_cloudinary_cloud_name
CLOUDINARY_API_KEY=my_cloudinary_api_key
CLOUDINARY_API_SECRET=my_cloudinary_api_secret

做完以上修改后重启项目即可正常上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:00