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

如何将Mailchimp API的require语句转换为import语句?

转换Mailchimp Transactional API的require语句为ES模块import语句

原CommonJS的require语句:

const mailchimpClient = require("mailchimp_transactional")("YOUR_API_KEY");

可以转换为以下ES模块写法,完全符合NestJS+ESLint的要求:

基础转换写法

import mailchimpTransactional from 'mailchimp_transactional';
const mailchimpClient = mailchimpTransactional('YOUR_API_KEY');

NestJS中最佳实践(封装为模块提供者)

在NestJS项目中,建议将Mailchimp客户端封装为全局可注入的提供者,避免重复初始化:

1. 创建Mailchimp模块

// src/mailchimp/mailchimp.module.ts
import { Module } from '@nestjs/common';
import mailchimpTransactional from 'mailchimp_transactional';
import { ConfigService } from '@nestjs/config';

@Module({
  providers: [
    {
      provide: 'MAILCHIMP_TRANSACTIONAL_CLIENT',
      useFactory: (configService: ConfigService) => {
        const apiKey = configService.get<string>('MAILCHIMP_API_KEY');
        return mailchimpTransactional(apiKey);
      },
      inject: [ConfigService],
    },
  ],
  exports: ['MAILCHIMP_TRANSACTIONAL_CLIENT'],
})
export class MailchimpModule {}

2. 在服务中注入使用

// src/mailchimp/mailchimp.service.ts
import { Inject, Injectable } from '@nestjs/common';

@Injectable()
export class MailchimpService {
  constructor(
    @Inject('MAILCHIMP_TRANSACTIONAL_CLIENT')
    private readonly mailchimpClient: typeof mailchimpTransactional,
  ) {}

  async sendTransactionalEmail(payload: any) {
    try {
      const response = await this.mailchimpClient.messages.send(payload);
      return response;
    } catch (error) {
      // 处理API调用错误
      throw new Error(`Mailchimp API error: ${error.message}`);
    }
  }
}

这样既满足ESLint对ES模块的要求,又符合NestJS的依赖注入规范,方便在整个项目中复用Mailchimp客户端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:05:21