在使用 Jade 模板的 Express 应用程序中集成 Angular 的好方法是什么?

What is a good way to integrate Angular in an Express app that uses the Jade template?

我是 Node.js 的新手,但我想开始一个新项目,我认为这可能是学习 Node-Express 框架和 MEAN 堆栈的好机会。

我感到困惑的是,如果上述堆栈根据定义使用 Angular,为什么 Express 会附带 Jade 模板(*请参阅编辑)引擎。事实上,据我了解,虽然 Jade 可以与 angular 一起使用,但这可能是不必要的,可能只是 over-complicate 东西(参见 this question)。

当然我可以看到 Express 可以独立于这样的堆栈使用,所以也许让我以不同的方式提出问题。

如果确实没有必要结合 Jade 和 Angular,那么在 MEAN 堆栈框架中构建 Web 应用程序时最好的方法是什么?

基本上,如果一个人在使用 Jade 模板生成一个快速应用程序后决定使用 Angular(和 Mongo),那么最好的方法是什么?因此,如果有人开始使用 Jade 模板,为了使用 Angular,回到普通的 HTML 会更好吗?

这可能只是我在该领域的无知让我感到困惑,但非常感谢一些澄清。

编辑: 原来的标题是 "Why does Express come with Jade if the MEAN stack uses Angular?" 但多亏了评论,我意识到这样说确实不正确that Express "comes" with Jade 所以我更改了标题,因为毕竟我实际上对其他东西最感兴趣。

您的整个问题似乎都是基于一条错误信息,因此很难回答。 Express 不包含 Jade。 事实上,它不包含任何模板引擎。您可以使用许多不同的模板引擎,并且必须先安装所有这些引擎才能将它们与 Express 一起使用。 Express 附带了一个用于插入模板引擎的框架,但没有实际工作的模板引擎。

事实上,Express 专门设计为 "Fast, unopinionated, minimalist web framework for Node.js"(这些词直接取自他们的主页)。 "unopinionated" 表示它不与任何特定的模板解决方案捆绑在一起。

也许这里的混淆来源之一是 Express 应用程序生成器默认使用 Jade。 Express 框架本身不假定任何特定的模板引擎。

这两个参考资料可以帮助您了解如何在 Express 中注册和使用模板引擎:Using template engines with Express and res.render() documentation

MEAN 是可以一起使用的特定技术堆栈的一个特定首字母缩写词。这绝不是使用 Express 的唯一方法。

node.js 模板引擎是构建动态网页的服务器端方式。服务器上存在一个模板,node.js 然后结合一些数据、模板和模板引擎来创建一个 HTML 页面,然后可以将该页面传送到浏览器并由浏览器呈现。 Angular 是一个客户端引擎,也用于构建动态页面(通常是插入了数据的页面)。它通常用于单页应用程序。我建议您阅读 What is AngularJS 了解更多详情。

因此,您似乎对构建动态网页的两种不同架构方法感到困惑。 Angular 方法只是做事的一种方式,Express 并不关心你是用 Angular 方式还是其他方式。它可以在任何一种情况下完成它的工作。