所以我对Angular js vs Express js的目标感到有些困惑。根据我的理解,我们使用Node.js来提供Angular js,但我们并没有完全限制/强制使用Node.js来提供它。另一方面,Express js似乎完成了类似于更传统的MVC框架的东西。
Angular Js是一种非服务器特定的MVC框架吗?这是否限制了Angular js后端服务器功能或易用性?
答案 0 :(得分:43)
<强>快速强>
Express是一个Web框架,受Ruby项目'Sinatra'的启发。它是Node
中众多Web框架之一<强> AngularJs 强>
AngularJS是一个MVC框架,它定义了许多概念来正确组织您的Web应用程序。您的应用程序定义的模块可以依赖于其他模块。它通过使用新属性或标记和表达式将指令附加到页面来增强HTML,以便直接在HTML中定义非常强大的模板。它还将应用程序的行为封装在控制器中,这些控制器由于依赖注入而实例化。
AngularJS可以帮助您轻松构建和测试Javascript代码。
回答你所看到的评论。
所以你会说他们是出于不同目的客户端vs 服务器端实现,因此互斥或是你 看一个可以使用Angular Js,Expression js和 Node.js在同一个应用程序中?
是的,它们用于不同的目的,但它们都是基于MVC的框架。是的,我们可以在哪里使用Angular路由器,视图和前端控制器,并使用express作为基本模型与MongoDB或任何其他数据库进行通信。但又是你的选择,因为你可以在不打扰AnagularJs的情况下实现一切。
添加更多。
AngularJS是一个漂亮的客户端框架,高度可测试,它结合了许多很酷的东西,如MVC,依赖注入,数据绑定等等。如果您想充分利用AngularJS功能,可以考虑使用RESTful方法对服务器端进行编码。您可以利用他们的资源工厂,它创建服务器端RESTful API的抽象,并进行服务器端调用,如get,post,put,delete等。
您可以使用AngularJS定义客户端行为[视图和控制器],然后编写AngularJS客户端可以与之交互的REST服务。客户端在Web浏览器[ AngularJS ]上运行,并与服务器进行异步通信。然后,服务器[ ExpressJS ]检索并存储客户端的数据。
在客户端和服务器之间保持明确的区别使得应用程序更易于维护和测试。添加它,这一切都取决于您要构建的内容以及如何最好地利用它们。
答案 1 :(得分:11)
AngularJS是一个javascript框架,在浏览器的客户端运行;它有一个路由器,是的,但仅适用于客户端(实际上,它使用哈希作为默认值)。
另一方面,Node.js在没有浏览器的情况下运行javascript,作为服务,它可以运行像Express这样的框架,处理HTTP等等,使它成为一个不错的Web服务器。
答案 2 :(得分:8)
相似性都是JavaScript框架,这意味着如果您一起使用它们,您可以在JavaScript中编写服务器端和客户端逻辑。
不同之处在于AngularJS是一个客户端框架,而Express是服务器端框架。
Express可以与任何客户端框架一起使用,因此Angular可以与任何服务器端框架一起使用。