NestJS博客实战00-前言

542 阅读5分钟
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鸭子模型鸭子叫的问题。而且比较KoaExpress这些比较底层的框架来说,它的功能更全更强大,底层的逻辑都被封装好了,我们只需要关注业务的实现就好了,Nest默认是基于Express的,Express因为诞生比较早,所以它的解决方案也比较多,等于说是站在了巨人的肩膀上(就好比vite站在了RollupEsbuild的肩膀上)。如果考虑到性能,它还可以把底层切换成fastify,fastify性能是很强大的。其他比较好的地方是他的官方文档写的比较详细,很容易理解。

个人博客网站的优缺点

接下来,简单谈一谈创建个人博客网站的优缺点。

  • 个人博客网站的优点

    1. 文章内容没有限制,或者限制比较少,许多比较知名的平台,对语言和文字的限制会比较多,会有比较尴尬的时候。
    2. 个性化的页面和功能,这个不用说了,自己做想做成什么样子都行,第三方的平台的话功能和样子都有限制。
  • 个人博客网站缺点

    1. 一开始自己的个人网站的流量是很低的,光靠自己的写,在各种搜索引擎里面的排名肯定是比较低,这些方面肯定不如第三方的平台,如果自己的文章是想展示给大家看的话。除非做出名,不然很难被搜索到。
    2. 自己的网站维护和运营都要靠自己去做,还有一些服务器的成本,当然也有那种国外免费的服务,但是稳定度比较低。这些都需要自己花费时间去管理的。

前提条件

本博客实战不是针对零基础朋友,需要大家掌握下面的知识

  1. 有前端开发经验,懂得HTML,JS,CSS基础语法
  2. 有一定的NodeJS基础
  3. 了解docker相关的支持
  4. 了解面向对象的一些抽象概念
  5. 知道TypeScript
  6. 至少看过Nest的基本概念(这是我边学边写的),推荐大家看英文官网,也有翻译好的中文官网,大家自己去问度娘,我就不写了。

事前准备和环境搭建

环境搭建请参照NestJS00-事前准备和环境搭建

本专栏适合的人群

  1. 想学习后端开发的前端小伙伴们
  2. 想深入学习NodeJS的小伙伴们