Nodemails 给我 TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。接收类型未定义

时间:2021-05-12 14:50:57

标签: javascript node.js nodemailer

我尝试使用 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 很陌生,我不明白这个错误。我的代码有问题吗?

感谢您的回答并为我的英语感到抱歉。

0 个答案:

没有答案