了解Node.js(api)中路由在使用Backbone.js(前端)时的作业

了解Node.js(api)中路由在使用Backbone.js(前端)时的作业,node.js,backbone.js,routing,routes,views,Node.js,Backbone.js,Routing,Routes,Views,我刚刚开始学习如何使用Backbone.js。之前,我使用了一个构建在Node.js之上的web框架来处理所有路由和响应。有了主干网,就可以使用SPA(单页应用程序) 我相信我的问题与此相关:(express.js+backbone的问题) 其中给出了代码: app.get('/', function(req, res) { // Trigger the routes 'domain.com' and 'domain.com/#/about' // Here render the

我刚刚开始学习如何使用Backbone.js。之前,我使用了一个构建在Node.js之上的web框架来处理所有路由和响应。有了主干网,就可以使用SPA(单页应用程序)

我相信我的问题与此相关:(express.js+backbone的问题)

其中给出了代码:

app.get('/', function(req, res) {
    // Trigger the routes 'domain.com' and 'domain.com/#/about'
    // Here render the base of your application
});

app.get('/about', function (req, res) {
    // Trigger the toure 'domain.com/about'
    // Here use templates to generate the right view and render
});
通过使用节点web框架,我通常不使用json请求来获取数据,而是在路由闭包中查询数据库。node.js(在node+主干网环境中)的工作只是提供主干网页面而不是查询数据库吗?因此,它只是将客户机定向到指定的backbone.js模板,而不传递任何数据,然后由backbone接管

因此,如果我想显示所有的图书模型(例如,example.com/books),我是否会通过节点将用户发送到该url,主干网将负责查询数据库(当然是使用模型)?那代码是什么样子的


我看到的大多数主干教程都涉及外部api。谢谢
  • 不要在node.js路由中查询数据库
  • 只要始终返回“起始页”HTML即可
  • 在浏览器中,主干路由器将初始化您的视图/集合/模型,然后您
    从服务器获取所需的数据并在浏览器中呈现页面
  • 首先让它工作起来,了解细节,因为总的来说它是最不复杂的。它确实会导致感知性能的延迟,因为在第二次往返服务器加载数据完成之前,页面将不可用。此外,事实上,起始页HTML可能是无效的有趣的搜索引擎爬虫数据搜索引擎优化可能是一个重要的因素为你(或不是)

    服务器端引导 因此Jeremy Ashkenas的官方指导是,对于整页加载,服务器应该:

    • 根据路由和任何请求参数查询数据库
    • 为该页面生成完整的HTML文档,包括呈现的视图
    • 在HTML文档中嵌入必要的JSON数据,并在主干应用程序加载到客户端时使用该数据引导主干模型
      • 介绍如何将引导主干对象连接到DOM(这留给读者作为练习)
    这里的主要优势是感知性能,但这也将有助于SEO(这可能对你来说很重要,也可能对你来说不重要)。然而,这意味着存在一个相当复杂的框架,使您能够在node.js和浏览器中呈现相同的HTML,而主干网本身并不提供。有一个项目称为实现跨浏览器和节点的统一HTML渲染的概念,您可以考虑使用或至少研究源以获得灵感。