Mailchimp i Node.js s TypeScript pitanjem za početnike: Import vs Require
Stvaram aplikaciju koja šalje određene transakcijske e-mailove koristeći Mailchimp.
Ovdje imaju sjajnu dokumentaciju: https://mailchimp.com/developer/api/transactional/messages/send-using-message-template/
Ali koristim TypeScript, pa linija:
var mailchimp = require("mailchimp_transactional")("API_KEY");
Ne radi, dobivam sljedeću pogrešku:
Error: Cannot find module 'mailchimp_transactional'
Znam da je ovo nešto malo, ali nisam siguran kako uopće to zaobići. Pronašao sam članak koji opisuje kako stvoriti vlastitu datoteku tipova ovdje: '@mailchimp/mailchimp_marketing/types.d.ts' nije modul u nodeJs-u
Ali mora postojati brže i jednostavnije rješenje. Također, nije jasno kako postaviti API ključ u tom slučaju.
Pokušao sam uvesti modul koji je @mailchimp/mailchimp_transactional što nije uspjelo. Naravno, također sam pokrenuo npm install @mailchimp/mailchimp_transactional
Bila bi cijenjena svaka pomoć, ovdje je potpuni primjer za slučaj da pomogne.
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);
}Odgovor #1
Ako netko bude nesretan da se suoči s ovim problemom jer Mailchipova dokumentacija ne podržava TypeScript postavku, i niste sigurni kako to 'samo raditi', evo odgovora:
const mailchimpFactory = require("@mailchimp/mailchimp_transactional/src/index.js");
const mailchimp = mailchimpFactory("PUTKEYHERE");Ovo izravno povlači JavaScript datoteku, a zatim druga linija inicijalizira objekt.
Sretno svima!
Odgovor #2
Od ožujka 2022. tipovi su dodani u DefinitelyTyped i mogu se pristupiti pokretanjem
npm install --save-dev @types/mailchimp__mailchimp_transactional