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

时间:2017-07-14 02:12:22

标签: angularjs node.js express pug mean-stack

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

我感到困惑的是,如果上面提到的堆栈根据定义使用Angular,Express会附带Jade模板(*参见EDIT)引擎。事实上,我的理解是,尽管Jade可以与angular一起使用,但这可能是不必要的,可能只是过于复杂(例如参见this question)。

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

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

基本上,如果使用Jade模板生成快速应用程序之后决定他想使用Angular(和Mongo),那么最好的方法是什么?因此,如果有人开始使用Jade模板,那么回到纯HTML以便使用Angular会更好吗?

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

编辑:原始标题是"如果MEAN堆栈使用Angular,为什么Express会附带Jade?" 但是感谢评论我意识到说Express"来"是不正确的。和Jade所以我改变了标题,因为我实际上对其他东西感兴趣。

1 个答案:

答案 0 :(得分:2)

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

事实上,Express专门设计为“Node.js的快速,独立,极简主义的Web框架”(这些文字直接来自他们的主页)。 “unopinionated”意味着它没有与模板的任何特定解决方案捆绑在一起。

这里可能有一个混乱的原因是Express应用程序生成器使用Jade作为默认值。 Express框架本身不承担任何特定的模板引擎。

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

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

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

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