예 : 다음과 같은 시나리오 : 그들은 단순히 그들이 우리를 넣어 원하는 장소에서node.js 용 Javascript 방출 템플릿 엔진?
<script language="Javascript" src="https://our.server/customer-name/entry-point.js"/>
를 작성하여 자신의 페이지에 우리의 제품을 포함 할 수 있는지, 그래서 우리는 우리의 고객에게 (https://our.server/customer-name/entry-point.js
같은 것을) 몇 가지 진입 점 URL을 제공 제품 (예, 알겠습니다. 이것은 추한 솔루션이지만 변경할 수있는 것이 아닙니다.)
그래서 여기에서 우리는 문제를 직면하게됩니다. 우리의 entry-point.js
은 (https://our.server/customer-name/
) 다른 파일을로드해야한다는 것을 어떻게 든 알아야합니다. 그래서 대답은 동적으로 entry-point.js
을 생성하여 동적으로 생성하는 것입니다.
res.write("var ourprefix_basepath = \"" + basepath.escape() + "\";");
res.write("function ourprefix_entryPoint() { /*do something*/ }");
res.write("ourprefix_entryPoint();");
, 그냥 너무 나쁜 :
var ourcompany_ourproduct_basepath = "https://our.server/customer-name/";
이 작업을 수행 할 수있는 확실한 방법은 수동으로 이런 일을 entry-point.js
를 구성하는 것입니다.
예를 들어 다음을 허용하는 템플릿 엔진이 있습니까? 다음에 :
var ourprefix_basepath = "https://our.server/customer-name/";
function ourprefix_entrypoint() { /* do something */ };
ourprefix_entrypoint();
다음 응답 스트림에 다음과 같은 기록합니다
var basepath = "https://our.server/customer-name/";
var export = {
ourprefix_basepath: basepath.escape(),
ourprefix_entrypoint: function() { /* do something */ }
};
templateEngine.render(export);
또는
view.vw:
ourprefix_basepath = rewrite("{#basepath}");
function ourprefix_entrypoint() { /* do something */
ourprefix_entrypoint();
App.js:
templateEngine.render("view.vw", { basepath: "https://our.server/customer-name/" });
또는 같은 것을 (당신이 생각이있어)?