我不确定Angular 2在NodeJs / Express中的位置。 Angular和Node一起工作还是只能将其中一个用于Web项目?
答案 0 :(得分:3)
Angular允许您构建完整的Web应用程序,而无需Node.js
如果没有Node.js和express,您将需要整理Web服务器。如果您有偏好,可以使用Apache,Nginx或其他。
但是,如果您要创建前端与之通信的后端或API,那么您可以引入Node.js并开发API。但是,您可以使用其他框架或工具。
您还可以将一些Node模块与构建工具(例如Grunt)结合使用,以优化您的前端资产,如CSS,JS,图像等。这样您就可以更好地控制服务于客户端的静态资产的状况。构建完成。
总之,您可以使用Angular构建一个完整的Web应用程序而无需Node.js,但Node允许您对项目资产进行更多控制,如果您愿意,还可以创建一个支持前端的单独应用程序末端。
答案 1 :(得分:2)
不,Angular和节点是不同的 Angular是一个非常强大的前端框架,允许您在客户端使用MVC结构,而Node.js是服务器端的Javascript实现,让您可以使用#34; active"服务器(使用Node,您可以执行异步任务,它不仅可以生成带有脚本的网页。例如,使用websocket非常棒,这是您在PHP中无法做到的事情。)
但是,对于Web应用程序来说,它是一个很好的解决方案,因为它们都使用Javascript,并使用本机Json来处理请求。
但是目前,我正在客户端使用angular2在PHP项目中工作。由于MVC结构,它比jQuery或其他框架更好,但是当你将它与PHP一起使用时,你必须做出一些安排(例如,当你发送带有角度的POST请求时,数据用JSON编码,那就是PHP的东西不明白:所以我在我的客户端使用了一个将JSON对象转换为简单的urlEncoded字符串的函数...)
我希望我回答你的问题,
文森特
答案 2 :(得分:1)
Angular 2用于前端代码,Node通常是'为了后端。
然而,节点可用于提供前端。 (大多数人要么不知道,要么忘掉它)。有些人还使用Node作为任务运行器来缩小客户端代码,预处理客户端代码等
例如,使用节点,您可以动态地将LESS或SASS或STYLUS文件转换为CSS文件,然后将CSS文件提供给您的浏览器。
实时重新加载可对CSS或代码更改执行实时更新,而无需进行浏览器刷新。
任务运行者可以自动注入Bower脚本依赖项。简化提供客户端代码的流程的流行节点任务运行器是Grunt和Gulp。
显然,在生产环境中,您不会使用任务运行器。任务运行器用于开发目的或用于构建目的。
我们正在使用Node的Gulp在开发环境中提供服务。我们也使用Gulp进行构建。但是在生产中,我们通过NGINX提供静态构建生成的文件。
所有这一切的缺点是需要付出大量努力来建立良好的管道。