0
考慮例如以下情形:我們給予一定的入口點URL(類似https://our.server/customer-name/entry-point.js
)給我們的客戶,讓他們能夠包括我們的產品在其頁面,只需在他們想要把我們的地方寫用於node.js的Javascript發射模板引擎?
<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();
?