【问题标题】:Mailchimp and Node.js with typescript noob question: Import vs RequireMailchimp 和 Node.js 与 typescript noob 问题:Import vs Require
【发布时间】:2021-03-16 15:31:01
【问题描述】:

我正在创建一个使用 Mailchimp 发送某些交易电子邮件的应用程序。

他们在这里有很棒的文档:https://mailchimp.com/developer/api/transactional/messages/send-using-message-template/

但我使用打字稿,所以行:

var mailchimp = require("mailchimp_transactional")("API_KEY");

不起作用,我收到以下错误:

Error: Cannot find module 'mailchimp_transactional'

我知道这是一件小事,但我完全不知道如何解决它。我在这里找到了一篇描述创建自己的类型文件的文章:@mailchimp/mailchimp_marketing/types.d.ts' is not a module in nodeJs

但必须有一个更快更简单的解决方案。它也没有明确说明在这种情况下如何设置 API 密钥。

我尝试导入模块 @mailchimp/mailchimp_transactional ,但它不起作用。 我当然也跑npm install @mailchimp/mailchimp_transactional

任何帮助将不胜感激,这是一个完整的示例,以防万一。

var mailchimp = require("mailchimp_transactional")("API_KEY");

export const testSendEmailFromTemplate = async () => {
    let mcbody = {
        template_name: "my-template",
        template_content: [{
            name:"firstname",
            content:"INJECTED.BY.TEMPLATE.CONT.firstname"
        },
        {
            name:"surname",
            content:"INJECTED.BY.TEMPLATE.CONT.surname"
        }],
        message: {
            to:{
                email:"email@gmail.com",
                name: "Test",
                type: "to"
            }
        },
        async:true
    };
    return await mailchimp.messages.sendTemplate(mcbody);
}

【问题讨论】:

  • 您的问题似乎与您的标题无关。特别是,这个问题没有“导入与要求”方面。
  • 问题是该模块没有安装在您尝试使用它的位置(在服务器上,对吗?),或者您的配置未设置为在任何位置查找模块 安装。
  • @T.J.Crowder 很好的接机thanx。我说,因为我相当确定我应该使用 Import 代替,但 mailchimp 文档没有指定如何做到这一点。我编辑了问题以包含它。我也安装了这个包,我还在本地运行这个
  • 您当然不能像以前那样组合它们(使用require 进行导入,但使用export 声明进行导出)。您使用哪个是您的项目的选择,由您的项目选项控制。
  • @T.J.Crowder 关于如何正确导入它有什么建议吗?

标签: node.js typescript import require mailchimp


【解决方案1】:

如果有人不幸遇到此问题,因为 Mailchip 的文档不适合打字稿设置,而您不确定如何使其“正常工作”,答案如下:

const mailchimpFactory = require("@mailchimp/mailchimp_transactional/src/index.js");
const mailchimp = mailchimpFactory("PUTKEYHERE");

这会直接拉入 javascript 文件,然后第二行初始化对象。

祝大家好运!

【讨论】:

  • 那是你真正的钥匙吗?
【解决方案2】:

我在 node/Typescript 项目中遇到了同样的问题,但这对我有用:


const mailchimp = require('@mailchimp/mailchimp_marketing')

导出类 MailchimpServices {

constructor() {

    mailchimp.setConfig({
        apiKey: '...',
        server: 'us5',
    });
}


async ping() {
    console.log('Start mailchimp ping!')
    const response = await mailchimp.ping.get();
    console.log(response);
}

}

【讨论】:

  • 不适合我。它说“错误:找不到模块'@mailchimp/mailchimp_marketing'”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
  • 2015-02-26
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 2014-02-14
相关资源
最近更新 更多