错误处理
- 默认抛出错误:模板有语法错误时
render()以CompileError拒绝,运行时出错以RenderError拒绝,error.details会标出模板中的出错行。 - 宽松模式:传入
debug回调后,错误交给回调处理;出错的指令被跳过,未闭合的块在模板末尾自动闭合,运行时失败的模板渲染为空字符串。 - 缺失的值:
null和undefined输出为空字符串,对它们做for循环会进入else分支。 - 模板校验:
validateTemplate(template, options?)使用真实的解析器,返回全部语法错误(含行列号)以及未注册过滤器的警告。
typescript
import { render, validateTemplate } from 'janja';
const html = await render(template, data, {
debug: (error) => console.warn(error.details ?? error.message),
});
const { valid, errors, warnings } = await validateTemplate(template);