# 应用框架

在新窗口观看视频

我们要开发一个应用,一般都不太会从零开始做,可以找一些库(Library),或者基于框架(Framework)或者系统(System)来做。库里面一般提供的就是一些零部件,框架里边儿除了提供应用需要的一些零部件以外,它还会给我们定一些规矩,帮我们做出一些决定,还会提供一套开发的方法与流程。 系统,就是一个现成的能用的东西,比如常见的就是内容管理系统(CMS)。它们三个的关系大概是这样的,在框架里边儿可能会用到一些库里面边儿的零部件,一个系统可能是基于某个应用框架做出来的。

如果我们把应用开发比做成是要造去一辆汽车,那这个库,就相当于是提供了汽车需要的一些零部件还有一些工具,你自个儿造汽车的时候可以使用这些工具还有零部件。框架就相当于是除了提供这些工具还有零部件以外,还有一些更大的部件,比如一套制动系统,另外还会给你一些设计方法还有设计图纸之类的东西。系统就相当于是直接给你提供一辆能开的汽车,你可以改造改造,把它变成自个儿想要的汽车就行了。

不同的语言,不同类型的应用,都有各自的一些可以选择使用的库,框架,还有系统。 我推荐大家可以先选择学习一款框架,因为框架比库更强一些,又比系统更简单,更灵活一些。我们决定基于 Node.js 来做一个服务端应用,所以就可以去找一款 Node.js 的服务端应用框架。

不夸张地讲,Node.js 拥有地球上最大的技术生态社区,可以选择的应用框架非常多。Egg.js,Express.js,Nest.js 等等,因为 Node.js 应用都是用 JavaScript 语言写出来的,所以这些框架都会带着一个 .js 后缀,一看到这个后缀你就知道这是用 JavaScript 语言写出来的东西。

在后面我们要选择使用的是 Express.js,它是一款轻型框架,本身带的东西不多,灵活度要高于其它的框架。并不是说越灵活就越好,实际上在开发应用的时候多点规矩是好事,这些规矩与规范有助于团队协作,也不容易失控。之所以选择 Express.js 这个框架来学习,是因为它比其它的框架更简单一些,我们可以利用这个特点,学习开发服务端应用的一些最关键的概念,因为这样在学习过程里面的干扰更小一些,也更好理解这些概念。

如果现在让我选择开发一个应用,我可能会选择更重型的应用框架,比如 Nest.js。因为我需要更多的规矩,规范,工具,更稳定的架构等等。但是如果我们一开始就选择学习这种重型框架,可能会比较懵,它里面涉及到的概念太多了,如果没有一个良好的基础,我们也很难理解它们。所以我们先选择学习一款轻型框架,打好基础,再去学习那些重型的应用框架。

在很多重型应用框架里面,可能会用到 Express.js 框架,比如在 Nest.js 框架里,就可以选择使用 Express.js 框架为应用提供 Web 服务。所以不会白学 Express.js 这个框架,而且我们更重要的任务是理解服务端应用的开发基础,这些基础知识适用于任何的技术平台,不仅限于 Node.js 应用...

成为一名开发者,把想法变成现实
参加此次开发之旅
订阅