列出数据库中的数据 - 将angularjs与API一起使用或在服务器端使用Jade生成

时间:2015-06-06 23:05:58

标签: angularjs node.js pug

我正在创建一个Node.js网络应用程序,我不确定是否使用AngularJS(或其他客户端模板引擎,如Ember或Backbone)来显示数据库中的数据或生成页面上的服务器端(用Jade)然后发送它。使用一种方法与另一种方法有显着的好处吗?

Angular确实增加了一层额外的复杂性,但与此同时我担心在服务器端生成页面时所涉及的性能损失。

2 个答案:

答案 0 :(得分:5)

你必须同时使用jade和angularjs。是玉在服务器端呈现页面,在客户端呈现角度。使用两者的原因是渲染索引视图或说出第一个着陆视图,其中包含我们的角度ui-view指令和我们的应用程序js或css文件应该用jade渲染。之后,角度将照顾所有其他路线。

    extends layout

block base 
  base(href="#{base_url}")
block content

  #Main(ng-app="your-angaulr-app")

      div(ui-view)
        p Load App Here

    var bootstrap = !{JSON.stringify(bootstrap)}; 
  script(src="/bower_components/jquery/dist/jquery.min.js")
  script(src="/bower_components/jquery-ui/jquery-ui.min.js")

  script(src="/bower_components/angular/angular.min.js")
  script(src="/bower_components/angular-ui-router/release/angular-ui-router.min.js")
  script(src="/bower_components/angular-resource/angular-resource.min.js")

  script(src="/js/build/application.js")
  script(src="/js/build/admin-templates.js")

这是你应该从jade渲染的index.jade文件,之后angular会完成他的工作。

答案 1 :(得分:1)

如果您只需要显示数据库中的某些数据,那么最好使用服务器端代码。否则,用户必须等待两个HTTP Get操作完成才能看到任何结果。第一个用JS文件加载空页,第二个用数据加载。更不用说需要加载到浏览器的所有.js文件和你必须编写的额外代码。

但如果您的数据需要更新而不刷新整个页面(通过用户交互或来自服务器的更新),那么您应该查看客户端代码和框架。 Angular允许您在客户端实现MVC模式,这有很多好处,但正如您所说,它可能看起来也增加了一些复杂性。