Express JS使用模板生成HTML,然后服务器将它们发送给客户端作为响应。可能有几个其他模板可以从中生成HTML。我能够发现的是:
Jade(http://jade-lang.com/)
在我的应用中,我需要同时使用ExpressJS和AngularJs。我是这两种技术的新手。在学习角度时,我不得不在纯HTML中使用它。在学习了ExpressJs后,我意识到,为了使用angularjs,我需要在上述任何模板中使用它们,这些模板在发送给客户端时将转换为HTML。
现在,我想使用expressjs作为我的服务器和angularjs作为我的客户端应用程序。为此,我想我有两个选择。
选项1
我可以完全停止使用模板,并使用我们的NodeJS服务器通过发送简单的HTML文件进行响应。然后,这些HTML文件将包含AngularJS编码。然后,在客户端,AngularJS将充当我们的应用程序。它将从服务器请求其他HTML文档。或者它也可以像AJAX一样使用,我们只能请求信息片段更新页面的一部分而不是刷新整个页面以进行微小的更改。
选项2
我可以在expressjs模板(jade或ejs)中使用angularjs。
请帮助我理解两种选择的利弊。在这种情况下,哪一个是您的选择。
答案 0 :(得分:13)
这是一个非常多的意见问题,Stack Overflow管理员讨厌任何有意见的内容,但不过这是我的经验和意见。
我现在已经完成了几个使用纯静态文件(HTML,CSS和JavaScript)的应用程序,以及那些在后端调用服务来传递数据的应用程序。它减少了后端,无论它是什么(我已经使用过Java和Node.js),只是作为一组服务URL,但它的工作非常好。
答案 1 :(得分:3)
我个人使用AngularJS和Express / Jade。设置实际上非常简单,我发现编写Jade比编写HTML更有乐趣。我也采用了在CoffeeScript中编写我的Angular代码,因为它可以更快地开发。如果您希望保存击键,那么Jade是一个很好的解决方案,它与Express的集成使它变得毫无疑问。如果您不担心更快地生成代码,那么使用HTML绝对没有问题。
我将指出,我发现使用Jade而不是HTML的最大好处之一是能够在多个文件中开发单个页面,然后使用include
在编译成HTML之前将它们合并。这允许您获取更大的页面并将其分解为更易于管理的块。加上Angular的模板,这可以减轻很多挫败感。
真的这只是一个意见问题,但由于我决定给Jade一个机会,我并没有后悔,我从来没有遇到过使用Angular时我的HTML呈现错误的情况。
答案 2 :(得分:2)
我选择了1,因为我不想处理任何与jade或ejs错误地转换模板和干扰Angular的潜在问题。我的应用程序基本上有索引页面(它实际上只是我的css和js包含的基本页面模板)来自Express作为玉,然后角度将它带到那里我所有的角度模板都在一个单独的位置比我的玉模板