Рассмотрите, например, следующий сценарий: мы дадим некоторую точку входа URL (что-то вроде https://our.server/customer-name/entry-point.js
) для наших клиентов, так что они в состоянии включить наш продукт на своей странице, просто писатьJavascript-испускающий шаблон движка для node.js?
<script language="Javascript" src="https://our.server/customer-name/entry-point.js"/>
в том месте, они хотят, чтобы положить наши продукт (да, я знаю, это уродливое решение, но это не то, что я мог бы изменить).
Итак, мы сталкиваемся с проблемой: наш entry-point.js
должен как-то узнать, откуда (https://our.server/customer-name/
) он должен загрузить другие файлы. Таким образом, кажется, что ответ заключается в том, чтобы генерировать entry-point.js
динамически, чтобы он содержал, например,
var ourcompany_ourproduct_basepath = "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 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/" });
или что-то вроде этого (у вас есть идея), которая будет записывать следующее в поток ответа:
var ourprefix_basepath = "https://our.server/customer-name/";
function ourprefix_entrypoint() { /* do something */ };
ourprefix_entrypoint();
?