Node.js 谷歌云功能与把手模板和nodeEmailer抛出路径没有找到视图
我试图发送自定义把手模板作为电子邮件模板。只要集合文档中有更新,就会触发电子邮件Node.js 谷歌云功能与把手模板和nodeEmailer抛出路径没有找到视图,node.js,google-cloud-firestore,google-cloud-functions,nodemailer,Node.js,Google Cloud Firestore,Google Cloud Functions,Nodemailer,我试图发送自定义把手模板作为电子邮件模板。只要集合文档中有更新,就会触发电子邮件 const nodemailer = require('nodemailer'); const hbs = require('nodemailer-express-handlebars'); const options = { viewEngine: { extname: '.hbs', layoutsDir: path.resolve(__dirname, 'views/e
const nodemailer = require('nodemailer');
const hbs = require('nodemailer-express-handlebars');
const options = {
viewEngine: {
extname: '.hbs',
layoutsDir: path.resolve(__dirname, 'views/email/'),
defaultLayout: 'template',
partialsDir: path.resolve(__dirname, 'views/partials/')
},
viewPath: 'views/email/',
extName: '.hbs'
};
const mailTransport = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'test@gmail.com',
pass: 'testpwd',
},
});
mailTransport.use("compile", hbs(options));
在文档上云函数的onUpdate
事件中,我编写了以下代码来发送电子邮件
mailTransport.sendMail({
from: "test@site.in",
to: `toemail`,
subject: `Test subject`,
template: "ordermail",
context: {
d: mailData
}
},
(error, response) => {
// console.log("mail sent to " + to);
console.log("Error", error);
mailTransport.close();
}
);
我在功能目录中的目录结构如下:
-node_modules
-views
|_ -email
|_ordermail.hbs
|_template.hbs
|_ -partials
|_ -email
|_ -footer.hbs
|_ -header.hbs
-index.js
-package.json
但它总是抛出一个无法找到视图的错误:
错误:enoint:没有这样的文件或目录,请打开“/user\u code/views/email/ordermail.hbs”
我怀疑在部署功能时,视图
目录未上载到服务器。我如何确保在运行命令firebase deploy--only functions
时已上载视图,或者如果默认情况下已上载到functions目录,为什么无法找到该目录?希望能在这方面找到一些帮助
更新
我可以说,当部署功能时,视图
目录被上传,而当部署中包含视图
目录时,文件大小增加,但我仍在试图找到上述错误的原因
更新2-结果表明,这只是因为ordermail
的拼写错误,模板名称是orderemail
。据此结束这一问题