node.js - 使用从 node.js 中注入的模板的backbone.js 视图( Express.js )

  显示原文与译文双语对照的内容

如果你想使用 backbone.js 和 node.js,通常使用 node.js ( Express.js particulary ) 作为后端API提供程序( 。其他功能,如持久,等等 ),而 backbone.js 是前端的引擎。

我们在互联网和github上阅读的项目通常是从一个直接执行javascript文件的index.html 开始的,这些文件实例化了'类',集合,视图,等等 和视图,如事件,事件等本身的视图。

当我看到一些类似 backbone.iobind ( https://github.com/logicalparadox/backbone.iobind )的项目时,这个问题会使用我真正不理解的配置。

如果你看到源代码,node.js 服务器不仅是API的负责,而是inyecting将要使用的html模板。 我有很多疑点:

执行 Backbone 前端,因为没有执执执行路由器。视图。集合和历史的javascript 。

如何通过 Express.js 同步模板 inyected,以及 backbone.js 侧的视图,这些视图将使用它们?

backbone.js 路由器类的用途,因为你使用 node.js 路由器作为inyecting内容?

为什么要使用这种架构,而不是像我在最初描述的那样更干净?

非常感谢你的帮助

时间: 原作者:

经过几天的研究,看到在互联网上没有关于它的信息,我将回答自己的问题。 希望一些编辑能纠正错误答案。 接下来,我将描述一个和 backbone.js 应用程序的'Backbone',它从后面的templating模板,而不是从前端开始,因为社区现在正在进行。 开发人员为什么选择两个选项之一? 根据不同变量:安全性,加载和渲染速度,等等 进程摘要:

基本上,第一步是在 Express.js 中配置视图目录和模板引擎:


 app.set('views', __dirname + '/views');


 app.set('view engine', 'jade');



之后,我们将在其中找到所有 static 资源的中间件。 讨论'static'资源时,我们讨论图像,javascript,html,css,等等,它们将在前端执行:


 app.use(express.static(path.join(__dirname, 'public')));



如果 express ( 或者连接) 找到 index.html inside (/public 目录),它将运行它。 如果没有,则必须通过快速路由系统创建路由。

我们正处于 Express.js inyects从后端开始的情况。 为此,我编写了一个路由系统,如下所示:


 app.get('/', require('./views/index').init);



如果用户在 Express.js/views detects,它将查找位于 inside 父目录( 而不是/public), )的文件,并将它的呈现到前端,并将inyected转换成前端:


 res.render('index');



D 。index.jade 将提供所需的资源。 在我们的例子中,将提供这个. jade, 所需的CSS,库( 。jquery,Backbone,等等 ),finally,两个将是requiere的元素:

将加载 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后端的begginers,我认为将有用。 上面 你们的结构。 也许这听起来很疯狂,但是互联网上没有什么信息可以解释它的结构。

最佳注意事项

原作者:
...