Node.js 如何使用显示错误的NodeEmailer发送hbs模板?

Node.js 如何使用显示错误的NodeEmailer发送hbs模板?,node.js,Node.js,模板位于views/email目录下,文件名为index.hbs,布局文件名为layout.hbs,位于views/email目录下,零件标签位于views/email/patartials目录下 如果将布局扩展设置为布局。hbs显示ann错误布局。未找到把手。如果像layout.handlebar那样设置,则不会显示错误。但总是会出现此错误{“errno”:-2,“code”:“enoint”,“syscall”:“open”,“path”:“/home/user/Documents/Mast

模板位于
views/email
目录下,文件名为
index.hbs
,布局文件名为
layout.hbs
,位于
views/email
目录下,零件标签位于
views/email/patartials
目录下

如果将布局扩展设置为布局。hbs显示ann错误
布局。未找到把手。如果像
layout.handlebar
那样设置,则不会显示错误。但总是会出现此错误
{“errno”:-2,“code”:“enoint”,“syscall”:“open”,“path”:“/home/user/Documents/Master Project/views/email/index.hbs”}

为了发送邮件,我使用了
nodemailer
npm软件包,还安装了
nodemailer express手柄
,用于编译hanldebars模板

这是我的代码

const nodemailer = require("nodemailer");
const hbs = require("nodemailer-express-handlebars");

var transporter = nodemailer.createTransport({
  service: "gmail",
  auth: {
    user: process.env.MAIL,
    pass: process.env.PASS,
  },
});
var options = {
  viewEngine: {
    extName: ".hbs" /* or '.handlebars' */,
    viewPath: __dirname + "/views/email/",
    layoutsDir: __dirname + "/view/email",
    defaultLayout: "layout",
    partialsDir: __dirname + "/views/email/partials/",
  },
  viewPath: "views/email/",
};

transporter.use(
  "compile",
  hbs({
    viewEngine: {
      extName: ".hbs",
      viewPath: "../views/email/",
      layoutsDir: "../views/email/",
      defaultLayout: "layout",
      partialsDir: "../views/email/partials/",
    },
    viewPath: "../views/email",
    extName: ".hbs",
  })
);

router.get("/mail", (req, res) => {
  let mailOptions = {
    from: process.env.FROMMAIL,
    to: "req.body.email",
    subject: "Testing",
    template: "index",
  };
  transporter.sendMail(mailOptions, (error, data) => {
    if (error) return res.send(error);
    res.send("Mail Send");
  });
});