한 클래스 내에서 여러 템플릿 엔진을 사용하는 방법은 무엇입니까?
7860 단어 nodewebdevjavascripttypescript
그러나 하나의 프로젝트 내에서 여러 템플릿 엔진을 사용할 수 있습니다. 많은 템플릿을 초기화하고 개별적으로 사용할 수 있습니다.
Aex 을 사용하면 훨씬 더 간단하게 할 수 있습니다.
init 함수 내에서 템플릿 엔진을 초기화하고 관련 매개변수를 init 함수에 전달할 수 있습니다.
또는 이 init 함수를 분리된 파일의 공유 함수로 래핑할 수 있습니다.
aex 에서는 웹 핸들러용 템플릿을 준비하는 데 도움이 되는
template
데코레이터를 제공합니다.template
데코레이터를 사용하는 방법에 대한 자세한 내용은 here에서 확인할 수 있습니다.다음은 템플릿 엔진
nunjucks
과 pug
가 여기에서 사용되는 여러 템플릿 엔진의 모습입니다.class Template {
@http("/one")
@template(
// init function
(path) => {
const loader = new nunjucks.FileSystemLoader([path], {});
const env = new nunjucks.Environment(loader, {
autoescape: false,
});
return env;
}, resolve(__dirname, "./views"))
public async name(_: any, res: any) {
// access using res.render
res.render("index.html", { hello: "Hello" });
}
@http("/pug")
@template((path) => {
const engine: any = {};
// engine render function rewrite
engine.render = function (name: string, data: any) {
let file = name;
if (!existsSync(name)) {
if (!existsSync(resolve(path, name))) {
throw new Error("File Not Found: " + resolve(path, name));
} else {
file = resolve(path, name);
}
}
return pug.renderFile(file, data);
};
return engine;
}, resolve(__dirname, "./views"))
public async name2(_: any, res: any, scope: any) {
// access using scope.engine
res.end(scope.engine.render("index.pug", { hello: "Hello" }));
}
}
Reference
이 문제에 관하여(한 클래스 내에서 여러 템플릿 엔진을 사용하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/610470416/how-to-use-multiple-template-engines-within-one-class-egj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)