单页应用程序适用于 CRM 吗?

Is Single Page Application suitable for a CRM?

我想听听您对一般复杂度的 Web 架构问题的意见。

Context:我必须为我的公司构建一个自定义 CRM(客户关系管理)网络平台,它几乎只对客户、合同等实体执行 CRUD 操作,发票等。此外,它还应该处理用户管理,如注册、身份验证和授权(用户定义允许他们执行哪种类型的操作的角色)。如果您想了解更详细的想法,请点击此处 data model

约束:我有义务在服务器端使用:

对于客户端,我可以自由使用 HTML、CSS 和 Javascript 中的任何前端 Web 框架和库组件,不受任何浏览器限制。

关注点:我的主要关注点是关注点的客户端-服务器分离,这就是我倾向于使用 SPA 方法的原因。我想通过使用 CakePHP 模板文件 (.ctp) 尽可能避免在后端渲染视图。如果可能的话,我什至想让后端几乎完全不知道客户端。

除了提供初始 html、css 和 js 应用程序文件外,我想使用我的后端作为整个 Json REST API对于客户端将通过 Ajax 调用使用的 EVERY CRUD 操作。我正在考虑使用 AngularJS 来处理所有 MVVM 客户端部分。

问题:单页应用是否适合这种方法?你会怎么做?任何 link 或文档将不胜感激。

感谢您对此事的见解!

祝你有美好的一天。

我的回答当然有偏见,但到目前为止,我已经在 front-end 上使用 Angular 和 back-end 上使用了 Node。如果您要为 JSON 提供 REST API,那么无论您为 front-end.

选择什么,它都应该工作相同

Angular 允许真正简单地应用 MVC 模式。因此,使用附加到 front-end 的任何逻辑都非常容易。那里有很多教程和示例 for A&A 尽管我为此使用并推荐了 JWT,因为你的 API 将在(几乎)所有内容中提供 JSON 并且它很容易附加到对每个请求(使用服务)进行授权 header。

Angular 有 $http 方法,它允许基本的 POST 和 GET 到你提供的任何 URL,处理错误和成功也很容易。

除了与服务器的交互之外,它还有几种有用且简洁的方式来显示浏览器上的信息,例如用户信息、角色等,使用双花括号 {{user.name }} 例如。

有任何问题欢迎随时提问!

如果你可以 Api 休息一下 cakePhp,angular 是做前端的一个不错的选择。

我建议您在 api 休息时使用 $resource。 $http.

更高效

https://docs.angularjs.org/api/ngResource/service/$resource

受雇于一家知名的大公司,我们也必须这样做。我们使用 ui.router 构建了一个大型 SPA 来处理路由。 ui.router 自称是 'de facto' angular 路由解决方案,确实是最好的最成熟的解决方案。

我们有 Angular 前端和 Node 后端,但正如您所说,前端和后端完全不可知。

为了进一步分离问题,您应该考虑 Docker在一个容器中构建您的解决方案、Web 文件和 Web 服务器,在另一个容器中与您的后端通信。

PS 如果您不熟悉 docker 并且想要快速了解一下,请参阅:

我很感激你可能会被限制使用 Docker,但如果没有,那就太棒了!