Skip to main content

Node.js 与前后端分离简介

· 6 min read
IceyBlackTea

The separation of front end and back end.

React + Node.js(Express.js) + MongoDB,简单又好用~

主体内容 2021-02-16
可能存在错误

本篇内容存在一定的主观性,可能存在错误!

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!