Mailchimp och Node.js med TypeScript nybörjarfråga: Import vs Require
Jag skapar en app som skickar vissa transaktionsmejl med Mailchimp.
De har bra dokumentation här: https://mailchimp.com/developer/api/transactional/messages/send-using-message-template/
Men jag använder TypeScript, så raden:
var mailchimp = require("mailchimp_transactional")("API_KEY");
Fungerar inte, jag får följande fel:
Error: Cannot find module 'mailchimp_transactional'
Jag vet att detta är något litet, men jag är inte säker på hur man ska komma runt det alls. Jag hittade en artikel som beskriver hur man skapar sin egen typer-fil här: '@mailchimp/mailchimp_marketing/types.d.ts' är inte en modul i nodeJs
Men det måste finnas en snabbare och enklare lösning. Det gör det heller inte klart hur man ställer in API-nyckeln i det fallet.
Jag har försökt importera modulen som är @mailchimp/mailchimp_transactional vilket inte fungerade. Jag har naturligtvis också kört npm install @mailchimp/mailchimp_transactional
All hjälp skulle uppskattas, här är ett fullständigt exempel ifall det hjälper.
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 ",
name: "Test",
type: "to"
}
},
async:true
};
return await mailchimp.messages.sendTemplate(mcbody);
}Svar #1
Om någon har oturen att stöta på detta problem eftersom Mailchips dokumentation inte täcker Typescript-uppsättningen, och du inte är säker på hur man får det att 'bara fungera', här är svaret:
const mailchimpFactory = require("@mailchimp/mailchimp_transactional/src/index.js");
const mailchimp = mailchimpFactory("PUTKEYHERE");Detta hämtar JavaScript-filen direkt och sedan initialiserar den andra raden objektet.
Lycka till allihopa!
Svar #2
Från och med mars 2022 har typerna lagts till i DefinitelyTyped och kan nås genom att köra
npm install --save-dev @types/mailchimp__mailchimp_transactional