我尝试使用 Nodemails 在 Node.js 中发送漂亮的邮件,但是当我添加模板时出现错误。
这是我的代码
require('dotenv').config();
const nodemailer = require('nodemailer');
const hbs = require('nodemailer-handlebars');
const log = console.log;
// Step 1
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'hacktonthon@gmail.com',
pass: '......'
}
});
// Step 2
transporter.use('compile', hbs({
viewEngine: 'express',
viewPath: './views/'
}));
// Step 3
let mailOptions = {
from: 'hacktonthon@gmail.com', // TODO: email sender
to: 'pgmendormi@gmail.com', // TODO: email receiver
subject: 'Nodemailer - Test',
text: 'Wooohooo it works!!',
template: 'test',
// context: {
// name: 'Accime Esterling'
// } // send extra values to template
};
// Step 4
transporter.sendMail(mailOptions, (err, data) => {
if (err) {
return log(err);
}
return log('Email sent!!!');
});
当我删除 transporter.use(向我发送电子邮件)和模板测试时,它会起作用,但是当我尝试添加它时,它给了我这个:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
at validateString (internal/validators.js:125:11)
at Object.resolve (path.js:1080:7)
at ExpressHandlebars._resolveLayoutPath (/home/guigui/synapture/my_hackathon/formulaire/node_modules/nodemailer-handlebars/node_modules/express-handlebars/lib/express-handlebars.js:342:17)
at ExpressHandlebars.<anonymous> (/home/guigui/synapture/my_hackathon/formulaire/node_modules/nodemailer-handlebars/node_modules/express-handlebars/lib/express-handlebars.js:223:35)
我有一个非常经典的 test.handlebars,“只是一个你好世界” 我对 Js 很陌生,我不明白这个错误。我的代码有问题吗?
感谢您的回答并为我的英语感到抱歉。