【问题标题】:Is there any need of learning views and template engines in express when we have already learn angular in the MEAN Stack当我们已经在 MEAN Stack 中学习了 Angular 时,是否还需要在 express 中学习视图和模板引擎
【发布时间】:2019-01-27 13:03:45
【问题描述】:

我正在学习 MEAN Stack。我从学习 Angular(来自 angular.io)开始,现在我正在学习 node.js 和 express.js

我的问题是,如果 MEAN Stack 中的前端有 angular,那么为什么后端 express.js 中有 视图和模板引擎?它们是相互替代还是相互补充?这两者的角色和责任的界限是什么?

我期待有人帮助我澄清我在平均堆栈中使用的这两种技术(表达视图和角度)的角色概念。

【问题讨论】:

    标签: angularjs express mean-stack


    【解决方案1】:

    Express JS 是一个基于 nodejs http 模块的 web 框架。而 Angular JS 是一个前端框架,它不依赖于 NodeJs 服务器来运行。从概念上讲,两者在路由等少数功能上是相似的,而实现却不同

    【讨论】:

      【解决方案2】:

      Angular 是一个成熟的前端框架,它有自己的模板化方式,在 HTML 中使用特定于角度的标记。如果您使用 Angular 作为您的框架,您或多或少会被他们在应用程序的 Angular 部分中模板化的方式所困扰。

      角度特征

      • 这是一个用Javascript语言编写的框架
      • 管理模型的状态
      • 与其他 UI 工具集成
      • 操作 DOM
      • 允许编写自定义 HTML 代码
      • 旨在让 javascript 开发人员快速创建动态网页

      NodeJS

      • 它服务于网络
      • 它是基于 google chrome 中的 javascript 引擎构建的运行时
      • 它可以被认为是一个轻量级的服务器,可以更灵活地服务客户端的请求
      • 比java更简单的方法
      • 它执行与数据库、网络套接字、 中间件等

      为什么我们将 Angular 用于 Tempting 而不是 Express/Node 诱惑引擎

      服务器端渲染是在屏幕上显示信息的最常用方法。它通过将服务器中的 HTML 文件转换为浏览器可用的信息来工作。

      每当您访问网站时,您的浏览器都会向包含该网站内容的服务器发出请求。请求通常只需要几毫秒,但这最终取决于多种因素:

      • 你的网速
      • 有多少用户正在尝试访问该网站以及
      • 网站的优化程度,仅举几例

      处理完请求后,您的浏览器会取回完全呈现的 HTML 并将其显示在屏幕上。如果您随后决定访问网站上的其他页面,您的浏览器将再次请求新信息。每次您访问浏览器没有缓存版本的页面时,都会发生这种情况。

      不管新页面是否只有几个与当前页面不同的项目,浏览器都会请求整个新页面并从头开始重新渲染所有内容。

      客户端渲染的工作原理

      当开发人员谈论客户端渲染时,他们指的是使用 JavaScript 在浏览器中渲染内容。因此,您不是从 HTML 文档本身获取所有内容,而是获取带有 JavaScript 文件的基本 HTML 文档,该文件将使用浏览器呈现网站的其余部分。

      这是一种相对较新的网站渲染方法,直到 JavaScript 库开始将其纳入其开发风格后才真正流行起来。

      在此处查看示例Pratical Example

      【讨论】:

      • 非常感谢@Malik Asad 的时间和回答。我故意不接受任何人的答案,希望更多的人可以发布他们的答案,并在一段时间后接受最合适的答案之一。为您的回答 +1 :)
      【解决方案3】:

      基本上,Express 中的模板引擎主要用于显示 404 和其他服务器错误消息。我发现它们非常适合此类用例。使用模板引擎进行复杂的前端渲染是不好的,也不是一个好的做法。

      【讨论】:

      • 谢谢,@SouvikDey 你添加了一些有用的东西。
      【解决方案4】:

      为了回答你的问题,让我解释一下什么是angular,什么是express中的模板引擎?

      什么是 Angular?

      Angular 是一个平台,可让您轻松使用 Web 构建应用程序。 Angular 结合了声明性模板、依赖注入、端到端工具和集成的最佳实践来解决开发挑战。 Angular 使开发人员能够构建在网络、移动设备或桌面上运行的应用程序。

      什么是模板引擎?

      模板引擎使您能够在应用程序中使用静态模板文件。在运行时,模板引擎将模板文件中的变量替换为实际值,并将模板转换为发送给客户端的 HTML 文件。这种方法可以更轻松地设计 HTML 页面。

      使用 Express 的一些流行模板引擎是 Pug、Mustache 和 EJS。 Express 应用程序生成器默认使用 Jade,但它也支持其他几个。

      那么,

      Angular 是一个包含模板组件的框架。您可以使用它来创建单页 Web 应用程序,这意味着 DOM 修改发生在客户端,并且应用程序仅与服务器数据交换。如果您关心的是模板,则它是纯 HTML。

      ,模板引擎的渲染视图每次都由服务器发送到客户端,每当请求每次在服务器上呈现新页面并发送到客户端时,这对于静态站点非常有用,但不适用于丰富的网站交互。

      如果 MEAN Stack 中有前端的 angular,那么为什么 express.js 中有视图和模板引擎在后端?

      这是因为并非每次都建议从 Angular 生成视图,有时最好使用模板引擎生成视图并将渲染的页面发送给客户端,在客户端生成视图有其优点和缺点,并在服务器端有自己的。

      使用模板引擎生成视图(即在服务器端):

      优点:

      1. 搜索引擎可以抓取网站以获得更好的 SEO。
      2. 初始页面加载速度更快。
      3. 非常适合静态网站。

      缺点:

      1. 频繁的服务器请求。
      2. 整体页面呈现缓慢。
      3. 重新加载整页。
      4. 非富网站交互。

      使用角引擎生成视图(即在客户端):

      优点:

      1. 丰富的网站互动
      2. 初始加载后快速呈现网站。
      3. 非常适合 Web 应用程序。
      4. 强大的 JavaScript 库选择。

      缺点:

      1. 如果没有正确实施,搜索引擎优化会降低。
      2. 初始加载可能需要更多时间。
      3. 在大多数情况下,需要外部库。

      因此,在了解了利弊之后,您自己可以更好地决定在特定情况下哪个更适合您。 Mean Stack 为开发者提供了选择。

      就您关于这两种技术的作用的问题而言,Angular 只是更多的视图生成器,它具有路由等功能,它作为服务双向数据绑定等,而模板引擎旨在呈现HTML,以便可以将其发送到客户端。

      我希望你会发现这个答案很有用。

      参考资料:

      1. what is the template engine?
      2. what is angular?
      3. pros/cons

      【讨论】:

      • 感谢@Muhammad Danish 的详细回答。这正是我想要的。
      猜你喜欢
      • 1970-01-01
      • 2021-05-06
      • 2015-06-30
      • 2019-04-16
      • 2010-09-12
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 2010-12-22
      相关资源
      最近更新 更多