The separation of front end and back end.
React + Node.js(Express.js) + MongoDB,简单又好用~
- 编辑历史
- 其他
可能存在错误
本篇内容存在一定的主观性,可能存在错误!
Node.js 的定位
虽然 Node.js 本身能作为后端工作,但从实际情况是,Node.js 常被视为前端的一部分,作为数据至页面的中间层。
前后端分离开发
过去传统的开发模式,由浏览器通过 HTTP(S) 协议向服务器请求页面。
服务器根据请求的内容,处理数据,将动态页面渲染为 HTML 文件后发送,用户通过浏览器查看。
对该过程来说,开发者所有的工作都集中在服务端中,无论是前端页面的样式还是后端的数据处理逻辑,可以说人人都是全栈开发。
对于大型项目,页面与逻辑的耦合度过高,维护和开发的难度也提高了。
为了开发效率,自然需要更加精细的分工。
随着前端技术发展,特别是 Ajax 技术的出现,网页开发基本已经从传统的前后端合并开发转为了前后端分离开发。
浏览器加载显示服务端获取 HTML 页面,执行其中的 JavaScript 代码,通过后端服务端提供的接口获取数据,由前端处理后展示。
两者的最大区别在于:原本的页面与数据在服务端处理完成后一起呈现;现在两者独立,内容的获取与处理由用户端的浏览器控制。
这一转变使得后端转为了 Web 服务端和 应用服务端两个部分,一个负责页面,一个负责数据。
优势也是很明显的:
应用的层次更加清晰;人员的分工更加明确;两部分开发可以同时进行,代码的可维护性与可读性增强,便于定位问题;只要接口不变,前后端更新与升级互不影响;性能与安全都提到了提升···
前后端分离是一种开发上的架构模式,并不是必须的,也不是仅能靠 Node.js 实现。
由于搜索引擎爬取的页面内容是基于 HTML 的,而 JS 代码执行后的数据可能爬取不到,因此前后端分离对 SEO(Search Engine Optimization,搜索引擎优化) 存在一定影响。
对于现在的前端技术,通用的前端框架还是很多的,例如 React, Vue.js ··· 他们都能非常简单快速的构建用户界面,并编译成静态的 HTML + CSS + JavaScript 文件。
这些前端框架包含各种的功能与组件,绝大部分都依赖 Node.js 进行开发与运行。
这使得 Node.js 对现在的流行趋势而言有着天然优势。
相关技术
实际开发选用技术与业务相关,这里展示网络收集资料,仅提供参考。
前后端分离的实现可以不仅靠 Node.js:如设置 Nginx,对于静态的 HTML,CSS,JavaScript 文件,使用 Nginx 能获取更好的性能;对于其他请求可以使用 Node.js 进行处理。
对于正常的商业企业来说,后端大概率还是 Java,特别是现在流行的微服务,很可能是 Spring Boot。
现在 Go 也很火,性能也很好,可能也有很多使用 Go 编写后端接口的。
后端数据库大部分还是 MySQL,配合使用Redis进行缓存提高效率。
一种可能的全栈:React/Vue.js + Nginx/Node.js + Java(Spring Boot)/Go + Redis/Mysql
最后
对于自己简单的小项目,没有复杂的业务逻辑时,使用 Node.js 一般也足够了。
MongoDB 作为 NoSQL 的代表之一,足够轻量与灵活,基于文档的数据存储与 Node.js、JavaScript 的 JSON 格式天生一对。
React + Node.js(Express.js) + MongoDB,基本够解决小型项目的各种需求了,简单易上手。
这期写的准备不够充分,语言组织不好。请读者见谅😭!
如果有其他问题,可以在我的 github.io 项目的 issue 留言,欢迎提问~
感谢观看!Thank you for watching!