我采用的是RESTful的方式,前后端完全分离。 但对数据的展示方式不知到如何选择:
- 后端每个API对应一个前端一个页面并提供该页面所需的所有信息,前端只需要获取数据再展示即可
- 后端每个API只提供一种数据,前端根据页面所需的内容,每个部分请求相应的后端API,全部请求完成后再传递给页面显示
我的考虑是:
- 后端和前端过于耦合,很容易造成API复杂,数量增多,不好维护;前端工作较简单
- HTTP请求过多,效率低,再加上JS的异步,回调较多;前端工作较多
不知诸位是如何选择的,或者有更好的解决方案,谢谢。
补充:Controller层是Node,我的问题也即Node和后端API交互的问题。
你少了ctrl层
@hezedu 不好意思,忘了说明。我这里Ctrl层就是Node,我的问题也就是在这一层怎么选择。
restful的话是二。可以整一个api服务器。再整一个渲染服务器(整合多个接口的资源并做简单的处理)
https://github.com/28509993/mauk 参考我的思路,对你很有好处 这个是基于EXPRESS的,根据文件夹进行路由的WEB框架,解决了原来项目中路由与文件分布使用困难的问题,使用动态路由以后代码的耦合性大大降低; 前端代码JS于后端代码JS根据逻辑需要分布在同一文件夹,根据逻辑要求拉近了前后端代码的空间; !开头的文件提供给前端WEB使用,通过GULP或者其他工具自动发布到对应的PUBLIC文件夹中; $开头文件提供给后端使用,动态加载到路由树中 此框架特别适合中小型应用的快速开发和部署,逻辑清晰,代码简单
我们现在采用的是node接管视图层,但是路由逻辑还是交给前面一层的server来处理,node只负责提供试图渲染服务,根据调用方提供的url和数据来把页面渲染后再吐回给调用方
那你现在的困扰是什么呢?数据压力,还是逻辑混乱耦合性强,不同的痛点,都有不同的解决方案,没有最好的,只有适合自己的,
谢谢诸位,我目前的实现与大家的回答是一样的,采用第二种方式。 主要的困扰就是如果页面的内容多的话,需要分别请求不同的API,会造成过多的HTTP请求(多虑了?)。 不过这种方式每个API的数据比一个大而全的API更容易被缓存,而且接口更清晰。
会造成过多的HTTP请求 - 多虑了