我知道这个错误在 SO 上经常被报告,但我无法解决这个问题,它与 Nodemailer 相关。
尝试发送电子邮件时,服务器崩溃并显示以下错误:
<块引用>err checkout TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。收到未定义 在新节点错误(节点:内部/错误:329:5) 在validateString(节点:内部/验证器:129:11) 在 Object.join(节点:路径:1081:7) 在 TemplateGenerator.render (/Users/myname/Desktop/Code/myapp/server/node_modules/nodemailer-express-handlebars/lib/generator.js:19:29) 在 /Users/myname/Desktop/Code/myapp/server/node_modules/nodemailer-express-handlebars/lib/index.js:9:19
代码是:
require("dotenv").config();
import nodemailer from "nodemailer";
import hbs from "nodemailer-express-handlebars";
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: process.env.NODEMAILER_EMAIL,
pass: process.env.NODEMAILER_PASSWORD,
},
tls: {
rejectUnauthorized: false,
},
});
transporter.use(
"compile",
hbs({
viewEngine: "express-handlebars",
viewPaths: "../mails/",
extName: ".hbs",
})
);
export class MailControler {
static confirmSignup(
{ email, username },
price: string
) {
return transporter.sendMail({
from: appMail,
to: email,
subject: "Hello",
template: "confirmSignup",
context: {
username
},
});
}
}
路线有效,传输器已定义(我可以在终端中用正确的信息记录它),express-handlebars 上下文已定义(我也可以记录变量 username
),我也可以记录 process.env 部分。
结构为:
所以这里没有目录错误。
这段代码有什么问题?这个未定义的路径参数在哪里?