AngularJS可以在没有REST API的情况下使用吗?

时间:2015-06-05 22:17:54

标签: javascript angularjs node.js rest

当我使用node.js创建一个简单的网站时,我可以使用视图引擎(例如.jade)和为其提供数据的控制器(例如简单的待办事项列表)。但是,如果我决定将AngularJS添加为客户端框架,那么我似乎必须在后端实现REST API以从中获取数据。几乎所有我在线使用AngularJS看到的例子都有这个基本架构:客户端(angular)通过REST API与服务器通信。

AngularJS可以在没有REST API的情况下使用吗?如果是这样,我应该这样做还是应该避免使用它?在没有REST API后端的情况下使用AngularJS是否有任何建议/最佳实践?

4 个答案:

答案 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