使用Mailchimp API时遇TypeError: Mailchimp is not a constructor错误如何解决?
解决Mailchimp "TypeError: Mailchimp is not a constructor" 错误
问题根源
你使用的@mailchimp/mailchimp_marketing库不提供可实例化的Mailchimp构造函数,官方文档的正确用法是通过全局配置初始化,而非创建类实例。
具体修复步骤
修改导入与初始化逻辑
替换原有的解构导入和实例化代码,改用全局配置的方式初始化Mailchimp:const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); // 直接导入整个模块,无需解构Mailchimp const mailchimp = require('@mailchimp/mailchimp_marketing'); const app = express(); app.use(bodyParser.json()); app.use(cors()); // 用setConfig初始化,替代new Mailchimp() mailchimp.setConfig({ apiKey: 'API_KEY_IS_HERE', server: 'YOUR_SERVER_PREFIX' // 从API密钥末尾提取,比如密钥是xxx-us15,这里填us15 });保留原有API调用逻辑
配置完成后,原有的addListMember调用无需修改,直接使用模块导出的方法即可:app.post('/api/subscribe', async (req, res) => { const { email } = req.body; try { const response = await mailchimp.lists.addListMember('AUDIENCE_KEY_IS_HERE', { email_address: email, status: 'subscribed', }); res.json({ message: 'Successfully subscribed!' }); } catch (error) { console.error('Error subscribing:', error); res.status(500).json({ error: 'Subscription failed.' }); } });
额外注意事项
- 服务器前缀必须和API密钥的后缀一致,比如API密钥为
abcdef12345-us20,则server值为us20; - 若后续仍有问题,可尝试更新依赖包:
npm update @mailchimp/mailchimp_marketing
内容的提问来源于stack exchange,提问作者Shriyans Pranay
相关产品推荐
相关产品推荐

