这个问题对于基于意见的答案存在相当大的风险,因此我建议进行更严格的评估:
Restful 服务器端实现
... 将使使用 Angular 变得更加容易和减少痛苦,并忠实于 HTTP 规范以及所有需要的好东西。在您选择的任何语言中,请确保框架允许您以最少的努力完成此操作。
根据我的经验:
PHP:
Vanilla PHP 和 Codeigniter 有能力但在这方面做得很差,我建议避免使用它们。我不能代表 Symfony 和更大的基于 ORM 的框架,但我理解学习曲线是不平凡的。我强烈建议远离 CMS 应用程序,如 wordpress 和 drupal,因为这种事情不是他们的目的。
我了解 Laravel 可能会提供相当低的学习曲线,并且具有 RESTFul interfaces baked in 的理解。
NodeJS
NodeJS 为服务器端提供了大量的框架,其中 Express 及其变体显然是其中许多框架的基础。 Express 提供了创建 RESTful 接口的灵活性,但默认情况下不这样做。对于更多的语法糖,通常需要连接您自己的中间件。
Ruby on Rails
据我了解,RESTful apis with rails 得到了相当大的支持。
数据库支持
PHP
Vanilla PHP mysqli 对数据库的支持可以工作,但是太低级了,无法使用。 CodeIgnighter、Symfony、Lavel 和其他框架都为不同程度地使用数据库提供了必要的抽象和安全性。在这方面区分它们在很大程度上是一个品味问题。 PHP 框架可能难以支持 NoSQL 类型的较新数据库。
NodeJS
Express 支持所有主要形式的数据库,带有适当的中间件,具有 NPM 存储库中的数千个选项。像往常一样,您必须将它们连接起来以不同程度的难度表达自己。
Ruby on Rails
Rails 支持主动记录模式,它提供了开箱即用的安全性和易用性。这支持大多数流行的标准关系数据库。但是,我不能说它与 NoSQL 数据库的集成。
学习曲线
这对于我来说太主观了,除了几个陷阱之外我不能说太多:NodeJS 社区希望入门技能相当高,callback hell 问题足够大,足以成为学习者服务器端的严重障碍发展。
安全
PHP
Vanilla PHP 提供的安全性很低,不推荐使用。 Codeigniter、Laravel 和其他框架通过字符串转义和 SQL 注入攻击提供了一些保护。
NodeJS
Express 没有提供太多开箱即用的安全功能,但可以使用 helmet 等模块进行强化。这与其说是一个缺陷,不如说是反映了应用程序的无主见本质。
导轨
我了解 Rails 通过 Active Record 和 CSRF 保护以及of the box 之外的其他功能提供基本的 SQL 注入保护。
就我个人而言:我使用 Koa(一个取代 express 的应用程序)为我自己的服务器端开发人员使用 angular。我的遗留项目使用 CodeIgnighter。