经过几天的研究,看到互联网上没有关于它的信息,我将回答我自己的问题。希望一些编辑会纠正错误的答案。我要描述的是node.js 和backbone.js 应用程序的“主干”,它从后端而不是前端注入模板,因为社区现在正在发展。为什么开发人员选择两个选项之一?根据不同的变量:安全性、加载和渲染速度等。过程总结:
A. 基本上,第一步是在express.js中配置views目录和模板引擎:
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
B. 在此之后,我们将在其中定位所有静态资源的中间件。当我们谈论“静态”资源时,我们谈论将在前端执行的图像、javascript、html、css 等:
app.use(express.static(path.join(__dirname, 'public')));
如果 express(或 connect)在 /public 目录中找到一个 index.html,它将运行它。如果没有,您必须通过快速路由系统创建路由。
C. 我们处于 express.js 从后端注入 HTML 的情况。为此,正如我所写,我们需要一个路由系统,例如:
app.get('/', require('./views/index').init);
在这里,当express.js检测到用户访问主页面'/'时,它会查找位于/views父目录(不是/public)内的index.js文件,并且会从这里index.jade将被渲染并注入到前端:
res.render('index');
D. index.jade 将提供所需的资源。在我们的例子中,将提供这个 .jade 所需的 CSS、库(jquery、backbone 等),最后,backbone.js 需要的两个元素:
将加载backbone.js 前端的javascript 文件。在这里,所有文件都将位于 /public 目录中:
script(src='/views/index.js')
index.jade 还将提供backbone.js 视图所需的模板:
script(type='text/template', id='login')
E. 有几种不同的backbone.js 配置。通常,您从前端路由器启动主应用程序,所有对象都在此处初始化。但是同步 index.jade 文件、模板和 javescript 视图的执行的主要思想是在 DOM 加载后执行最后一个。出于这个原因,最好的办法是使用下面的 jquery 语句:
$(document).ready(function() {
app.view = new app.View();
});
也许有些人会觉得这个总结没有必要,但是对于那些不知道将所有都放在前端或混合 HTML node.js 后端 + 主干.js 前端之间的区别的初学者来说,我认为这会很有用. 首先,结构如何。也许这听起来很疯狂,但互联网上没有解释如何构建它的信息。
最好的祝福