如何识别不同的车把模板?

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
  })
}