Импорт определенной функции из некоторой папки, в которой был необходим модуль с этой функцией, не работает.
Я использую nodemailer для отправки электронных писем.У меня есть 3 разные папки с модулями.Проблема заключается в импорте (требуется) функции отправки электронной почты в текущий модуль из другого.Становится undefined
, а ошибка myFunc is not a function
.Я делаю довольно простые вещи, такие как требование функции из папки с index.js
, которая включает в себя необходимую функцию.Но он становится неопределенным, когда я пытаюсь его использовать.
services / mailTransport.js
const nodemailer = require('nodemailer');
const mailTransporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false,
auth: {
user: 'test@test.com',
pass: 'myPassword'
}
});
module.exports = mailTransporter;
services / index.js
const mailTransporter = require("./mailTransporter");
module.exports = { mailTransporter }
utils / mailTemplate.js
const { mailTransporter } = require("../services");
const sendEmail = function (obj, msg) {
return new Promise( (res, rej) => {
let mailOptions = {
from: 'test@test.com',
to: `${obj.to}`,
subject: `${obj.subject}`,
text: "plain text",
html: "<b>" + msg + "</b>"
};
mailTransporter.sendMail(mailOptions, (error, info) => {
mailTransporter.close();
if (error) {
rej(error);
}
console.log('Message sent: %s', info.messageId);
res(info.messageId);
});
})
}
module.exports = { sendEmail };
И, наконец, я хочу использовать его здесь в projects / emails.js
const { sendEmail } = require("../utils/mailTemplate");
const { vendorNotificationMessage } = require("../utils/emailMessages");
async function notifyVendors(steps) {
try {
for(let step of steps) {
if(step.vendor) {
const message = vendorNotificationMessage(step);
step.to = step.vendor.email;
step.subject = "Step cancelling notification!";
await sendEmail(step, message);
}
}
} catch(err) {
console.log(err);
console.log("Error in notifyVendors");
}
}
module.exports = { notifyVendors };
Я ожидаю, что электронное письмо будет отправлено с использованием этой функции sendEmail
.Но останавливается с ошибкой TypeError: sendEmail is not a function
.