这是一个多部分的问题,我是 Node 的新手,所以请温柔:)
我有一个非常简单的 Node/express 应用程序设置返回 index.html 而不使用路由...
var app = express();
var port = process.env.PORT || 1337;
app.use('/i', express.static(__dirname + '/i'));
app.use('/Stylesheets', express.static(__dirname + '/Stylesheets'));
app.use(express.static(__dirname));
app.listen(port);
console.log('listening on port ' + port);
index.html 用作静态文件。
我的下一项工作是开始返回一些带有正确路由的页面,我已经知道我需要将我的路由放在 routes.js 文件中,并在我的 server.js 文件中“要求”该文件,但我可以不要让我的头脑设置路线,我在网上看到的每个示例/演示似乎都以不同的方式进行。任何有关如何做到这一点的明确示例都将不胜感激。
问题的下一部分是我想包含动态页面,但不知道模板引擎的去向。我想使用一些“不引人注目”的东西,这样我的原始 HTML 文件在浏览器中查看时仍然有意义。
在前端,我只需先使用选择器将 HTML 注入页面,然后使用 .html() 方法更改 html,我可以将 JSON 数据与模板绑定,然后通过查找将其注入正确的位置对于类名等。这完全不显眼,不需要任何丑陋的 {} 括号、内联 javascript 或指令。伪代码...
var data = {"name":"John"};
var result = templateEngine.bind("/template.html", data)
$('.person').html(result);
这样,我可以保持我的原始 HTML 干净和可见,就像这样......
<div class="person">
My Name is FirstName
</div>
我能找到的最接近的是 PURE - http://beebole.com/pure - 但我不确定如何让它与 NODE 一起工作(或者即使它兼容)。
为了增加更多复杂性,我使用的任何模板引擎都需要能够使用子模板(部分?),以便我可以包含每个页面上都相同的页眉/页脚等。我假设这可以通过在需要的每个主模板中引用子模板来递归完成?
如果您仍在阅读本文,那么很明显,您会发现我在这里用新技术挣扎,任何帮助都将不胜感激!