1.2 初识Express
Express网站上是这样介绍Express的:“精简的、灵活的Node.js Web程序框架,为构建单页、多页及混合的Web程序提供了一系列健壮的功能特性。”这究竟是什么意思呢?下面我们来逐一解读一下。
· 精简
这是Express最吸引人的特性之一。框架开发者经常会忘掉“少即是多”这一基本原则。Express的哲学是在你的想法和服务器之间充当薄薄的一层。这并不意味着它不够健壮,或者没有足够的有用特性,而是尽量少干预你,让你充分表达自己的思想,同时提供一些有用的东西。
· 灵活
Express哲学中的另一个关键点是可扩展。Express提供了一个非常精简的框架,你可以根据自己的需要添加Express功能中的不同部分,替换掉不能满足需要的部分。这种做法很新鲜。很多框架把什么都给你了,一行代码还没写,你拥有的就已经是一个臃肿、神秘而复杂的项目了。通常,你的第一项任务就是把不需要的功能砍掉,或者替换掉不能满足需求的功能。Express则采取了截然不同的方式,让你在需要时才去添加东西。
· Web程序框架
这里需要琢磨一下语义了。什么是Web程序?这意味着Express就不能做出网站或者网页了吗?不,网站是Web程序,网页也是Web程序。但Web程序的含义不止这些,它还可以向其他Web程序提供功能(还有别的)。一般而言,“程序”是具有功能的,它不止是内容的静态集合(尽管这也是非常简单的Web程序)。尽管现在“程序”(在你的设备本地运行的东西)和“网页”(通过网络为你的设备服务的东西)之间有明显的界限,但这种界限渐渐变得模糊了,这要感谢PhoneGap这样的项目,同时也要感谢微软允许HTML5像本地应用程序一样在桌面上运行。不难想象,几年之内程序和网站之间的界限将不复存在。
· 单页Web程序
单页Web程序是比较新颖的想法。不像之前的网站,用户每次访问不同的页面都要发起网络请求,单页Web程序把整个网站(或很大一部分)都下载到客户端浏览器上。经过初始下载后,用户访问不同页面的速度更快了,因为几乎不需要或者只要很少的服务端通信。单页程序的开发可以使用Angular或Ember等流行框架,Express跟它们都配合得很好。
· 多页和混合的Web程序
多页Web程序是更传统的方式。网站上的每个页面都是通过向服务器发起单独的请求得到的。这种方式确实比较传统,但这并不意味着它没有优点,或者说单页程序更好。只是现在有更多选择了,你可以决定哪些内容应该作为单页程序提供,哪些应该通过不同的请求提供。“混合”说的就是同时使用这两种方式的网站。
如果你还是很困惑Express究竟是什么,不用担心。有时候只管把某些东西拿来用就好了,不用先理解它是什么,本书将教你如何用Express开发Web程序。