Estoy tratando de usar la función de plantilla para enviar correos electrónicos, pero cada vez que lo intento devuelve el mismo error:
[Error: ENOENT: no such file or directory, open 'C:\Projetos\project\backend.io\main.handlebars'] { errno: -4058, code: 'ENOENT', syscall: 'open', path: 'C:\\Projetos\\project\\backend.io\\main.handlebars' }Estoy dejando mi controlador que se usa en mi ruta cuando llamo al método de almacenamiento:
class Players extends Controller { constructor() { super(Player); this.JWT_EXPIRE = 28000; this.relationships = ["permission"]; this.fieldHidden = ['fieldHidden'] } async store(req, res) { try { let body = req.body; if (body.password) { const salt = await bcrypt.genSalt(10); body.password = await bcrypt.hash(body.password.toString(), salt); } req.body = body; let player = super.store(req, res); Mail.sendMail({ from: 'Email <muyemail@myhostname.com>', to: player.email, subject: 'Reset your password', template: 'confirm_account', //Name email file template context: { // pass variables to template token: player.token } }, function (err, response) { if (err) { console.error(err) } console.log(response) }); return player; } catch (error) { let errors = error.message.split(",\n"); return res.json({ status: "error", message: errors, }); } } }Este es mi archivo de Configuración que hice para gestionar el envío del Email:
"use strict"; import nodemailer from 'nodemailer'; import dotenv from 'dotenv'; import mailerhbs from 'nodemailer-express-handlebars'; const path = require('path'); dotenv.config(); // create reusable transporter object using the default SMTP transport var Mail = nodemailer.createTransport({ host: process.env.MAIL_HOST, port: 465, secure: true, // true for 465, false for other ports auth: { user: process.env.MAIL_USERNAME, pass: process.env.MAIL_PASSWORD }, }); Mail.use('compile', mailerhbs({ viewPath: 'src/mails/templates', //Path to email template folder extName: '.hbs' //extendtion of email template })); export default Mail;La imagen de mi proyecto de estructura a continuación: