by 雪隐 from https://juejin.cn/user/1433418895994094
本文欢迎分享与聚合,全文转载就不必了,尊重版权,圈子就这么大,若急用可联系授权
大家好我是雪隐,请叫我雪宝,一个走了很长弯路的前端工程师。最近想把自己写的老博客翻新下。所以准备用从NestJS
的角度来写一个专栏系列。希望我写的东西对大家有所帮助。
项目介绍
在这个项目我会简单做个人博客网站,从最初的开发到最后的发布上线所有的流程都会写到。主要是从NestJS的角度来写。前端展示的页面考虑到SEO,会使用NestJS+模版引擎来单独写(以后考虑到可以升级成NustJS)。后端会用纯的NestJS来写一个服务。后台管理画面(简略的带过,并不会详细介绍)用Vue+vite+pinia+tsx来写。
我为什么要写这篇专栏呢?
- 主要是最近学习了很多
NestJS
的知识,想找一个项目来练练手。理论知识需要实践来巩固。 - 从其他的方面来说,前端的开发总是接触不到业务的核心,所以多学习后端的开发,在工作中能够承担一部分后端开发的任务,对前端来说也是一个不错的发展方向。
- 其实在国外NodeJS做服务端开发已经非常流行了,可是在中国比较可惜,没有形成一定的规模。从各个角度来说NodeJS并不会有特别大的短板。而且前后端通用一个语言的好处是很多。很多共通函数是可以跨越前后端分享的。
- 另外,就算不能做后端的工作,也至少能了解到后端一些开发设计思想。在工作中,有时候会听到后端开发说,这个数据我处理不了,你要在前端给我处理下之类要求。如果自己会开发后端,那就能很好的理解为什么这个数据在后端处理不了(或是处理起来很麻烦),又或是后端有没有在忽悠我之类的等等。
- 最后,个人博客相对于电商之类的网站来说,入门门槛比较,而且好的程序员,都需要做好自己的总结。有一个自己博客网站做自己的技术总结也是不错的。就算没人来看,自己时不时来看一下复习下,也很好。
本人水平有限,如果文章内容有什么写的不对甚至是写错的,请大家包容并指出。
NestJS介绍
Nest官网上有介绍:Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。
个人感觉:他的写法和Spring
有点像,借鉴里面很多设计思想。面向切片,依赖注入等等都可以用注解的方式来实现。用起来比较顺手。并且基于TypeScript
能很好的解决的JS鸭子模型鸭子叫的问题。而且比较Koa
,Express
这些比较底层的框架来说,它的功能更全更强大,底层的逻辑都被封装好了,我们只需要关注业务的实现就好了,Nest默认是基于Express的,Express因为诞生比较早,所以它的解决方案也比较多,等于说是站在了巨人的肩膀上(就好比vite站在了Rollup
,Esbuild
的肩膀上)。如果考虑到性能,它还可以把底层切换成fastify
,fastify
性能是很强大的。其他比较好的地方是他的官方文档写的比较详细,很容易理解。
个人博客网站的优缺点
接下来,简单谈一谈创建个人博客网站的优缺点。
-
个人博客网站的优点
- 文章内容没有限制,或者限制比较少,许多比较知名的平台,对语言和文字的限制会比较多,会有比较尴尬的时候。
- 个性化的页面和功能,这个不用说了,自己做想做成什么样子都行,第三方的平台的话功能和样子都有限制。
-
个人博客网站缺点
- 一开始自己的个人网站的流量是很低的,光靠自己的写,在各种搜索引擎里面的排名肯定是比较低,这些方面肯定不如第三方的平台,如果自己的文章是想展示给大家看的话。除非做出名,不然很难被搜索到。
- 自己的网站维护和运营都要靠自己去做,还有一些服务器的成本,当然也有那种国外免费的服务,但是稳定度比较低。这些都需要自己花费时间去管理的。
前提条件
本博客实战不是针对零基础朋友,需要大家掌握下面的知识
- 有前端开发经验,懂得HTML,JS,CSS基础语法
- 有一定的NodeJS基础
- 了解docker相关的支持
- 了解面向对象的一些抽象概念
- 知道
TypeScript
- 至少看过Nest的基本概念(这是我边学边写的),推荐大家看英文官网,也有翻译好的中文官网,大家自己去问度娘,我就不写了。
事前准备和环境搭建
环境搭建请参照NestJS00-事前准备和环境搭建
本专栏适合的人群
- 想学习后端开发的前端小伙伴们
- 想深入学习NodeJS的小伙伴们