如何识别不同的车把模板?
How to identify different handlebar templates?
我的项目中有几个 html 文件,它们是电子邮件消息的模板,例如电子邮件验证、密码重置等...
我需要预编译这些文件并在合适的地方使用它们,例如,必须在注册功能中发送电子邮件验证模板。问题是,如果我不知道它们属于哪种类型,我该如何识别使用它们的模板?如何为模板创建某种标识符?
您可以将已编译的模板保存在一些数据结构中,以某种方式返回它并在之后使用它。
下面是一个基于您的处理函数并使用 Map
作为数据存储的示例:
export function preCompileTemplates(globString: string) {
const paths = getPathsFromGlob(globString)
const preCompiledTemplatesPs = paths.map(path => {
const templateName = path.substring(path.lastIndexOf('/') + 1, path.length - 5);
return fs.promises.readFile(path).then(template => {
return {name: templateName, content: Handlebars.precompile(template)}
})
})
const templates = new Map()
return Promises.all(preCompiledTemplatesPs, (preCompiledTemplates) => {
preCompiledTemplates.forEach(template => {
templates.set(template.name, template.content)
})
return templates
})
}
我的项目中有几个 html 文件,它们是电子邮件消息的模板,例如电子邮件验证、密码重置等...
我需要预编译这些文件并在合适的地方使用它们,例如,必须在注册功能中发送电子邮件验证模板。问题是,如果我不知道它们属于哪种类型,我该如何识别使用它们的模板?如何为模板创建某种标识符?
您可以将已编译的模板保存在一些数据结构中,以某种方式返回它并在之后使用它。
下面是一个基于您的处理函数并使用 Map
作为数据存储的示例:
export function preCompileTemplates(globString: string) {
const paths = getPathsFromGlob(globString)
const preCompiledTemplatesPs = paths.map(path => {
const templateName = path.substring(path.lastIndexOf('/') + 1, path.length - 5);
return fs.promises.readFile(path).then(template => {
return {name: templateName, content: Handlebars.precompile(template)}
})
})
const templates = new Map()
return Promises.all(preCompiledTemplatesPs, (preCompiledTemplates) => {
preCompiledTemplates.forEach(template => {
templates.set(template.name, template.content)
})
return templates
})
}