TransWikia.com

Erro ao enviar e-mail com SendGrid no NodeJS

Stack Overflow em Português Asked on December 30, 2021

Tenho a seguinte estrutura para enviar e-mails pelo SendGrid:

import mail from '@sendgrid/mail';

function send(email_data) {
  mail.setApiKey(process.env.SENDGRID_API_KEY);

  const message = {
    to: email_data.to,
    from: email_data.from,
    subject: email_data.subject,
    text: email_data.text,
  };

  return mail.send(message);
}

export default send;

Na minha Controller, eu chamo método send da seguinte maneira:

import mail from '../../services/sendgrid';

    const email_data = {
      to: '[email protected]',
      from: '[email protected]',
      subject: 'Deposito realizado',
      text: 'Foi feito um deposito na sua conta ...',
    };
    
    mail.send(email_data);

Mas o seguinte erro é exibido pra mim:

(node:7963) UnhandledPromiseRejectionWarning: TypeError: _sendgrid2.default.send is not a function

One Answer

Sim, isso é um erro de importação.

Módulos exportam objetos em JavaScript, default é apenas uma das propriedades desse objeto. Quando você faz a importação do módulo, você pode escolher o que você quer importar:

// isso importa a propriedade default e a renomeia para metodo_1
import metodo_1 from "modulo"

// isso importa as demais propriedades via desestruturação
import { metodo_2, propriedade_1 } from "modulo"

// isso importa todas as propriedades e as colocam dentro do objeto tudo
// você pode acessa-los como tudo.default, tudo.metodo_2, tudo.propriedade_1
import * as tudo from "modulo"

Como send está sendo exportada como default, na hora de importa-la você deveria fazer

import send from '../../services/sendgrid';

const email_data = {
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Deposito realizado',
  text: 'Foi feito um deposito na sua conta ...',
};

send(email_data);

Answered by Andre on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP