当我使用node.js创建一个简单的网站时,我可以使用视图引擎(例如.jade)和为其提供数据的控制器(例如简单的待办事项列表)。但是,如果我决定将AngularJS添加为客户端框架,那么我似乎必须在后端实现REST API以从中获取数据。几乎所有我在线使用AngularJS看到的例子都有这个基本架构:客户端(angular)通过REST API与服务器通信。
AngularJS可以在没有REST API的情况下使用吗?如果是这样,我应该这样做还是应该避免使用它?在没有REST API后端的情况下使用AngularJS是否有任何建议/最佳实践?
答案 0 :(得分:7)
绝对。即使您从未使用$http服务与您的服务器通信,Angular仍然可以在您的网站上做很多事情。您仍然可以利用这些实用程序来帮助管理DOM。
也就是说,大多数现代应用需要从服务器获取数据。您可能需要这么做的原因很多。例如,如果您有需要注册的用户,那么您需要在某处存储用户名和密码。那个地方将在只有你的服务器可以访问的数据库中。然后,您的服务器会提供一些您可以通过Angular的$http
服务与之交谈的网址。
如果您确实有一个应用程序可以调用服务器,但您想要关闭网络通信以进行测试,则可以mock $http
来电响应。 Angular为此目的提供了$httpBackend。您可以使用它来设置假冒回复$http
来电的虚拟网址,以便您的$http
来电不知道他们实际上并未与服务器通话。
authRequestHandler = $httpBackend.when('GET', '/auth.py')
.respond({userId: 'userX'}, {'A-Token': 'xxx'});
非常适合在测试期间无需REST后端测试代码。
答案 1 :(得分:1)
REST是Representational状态转移的缩写,基本上是事物或资源而不是动作。是的,AngularJS可以在没有REST API的情况下使用。
答案 2 :(得分:1)
您可以将nodeJS用作您的restful API,并将AngularJS用作您的javascript框架。
即使没有安静的API,AnguarlJS也是一个非常强大的工具,可以在项目中使用它虽然可以充分利用它(完全扩展的Web应用程序),但您需要一个安静的API。
答案 3 :(得分:0)
使用$ http而不是RESTful API 将REST资源用于RESTful API