sendgrid-nodejs
sendgrid-nodejs copied to clipboard
Axios is not a function. (In 'axios(data)', 'axios' is an instance of Module) - when trying to send mail
I've been getting this error when i try to send emails.
So i did a set up on digital ocean droplet, installed nginx and every other thing i need.
API works fine, but when it gets to sending emails it fails
This is my logic for sending email
`import 'dotenv/config'; import { sendGridConfig } from '../config/config'; import sgMail from '@sendgrid/mail';
sgMail.setApiKey(sendGridConfig.apiKey);
export const sendMail = async ( to: string, name: string, data: any, templateId: string ) => { try { await sgMail.send({ to, from: sendGridConfig.sender, templateId, dynamic_template_data: data, }); console.log("Email Sent Successfully"); } catch (err) { console.error("SendGrid Error:", err.response?.body || err.message); throw new Error("Email Failed to Send"); } };`
Sendrid mail version => 7.7.0 downgraded from 8.8.0 both version fails
Nodejs version => v20.16.0 Nginx version => nginx/1.26.0 (Ubuntu) Yarn version => 1.22.22
Im having the same issue
The issue for me was because the library uses CommonJS format to import axios when my project was using ES modules.
Changing this line in the code fixed it for me: https://github.com/k----n/sendgrid-nodejs/commit/395f861d313ee0cb08ae3a62b9b28164bc24d328#diff-e5eefeb8ae9201959d1fdd93f319727cf0b472f694b8af15d931f99fd004b8aeL2
I isolated the changes to a branch and installed it with npm and everything works now: npm i git+https://github.com/k----n/sendgrid-nodejs.git#client