初识Express
Express网站上是这样介绍Express的:“精简的、灵活的Node.js Web程序框架,为构建单页、多页及混合的Web程序提供了一系列健壮的功能特性”。
精简的
这是Express最吸引人的特性之一。框架开发者经常会忘记“少即是多”这一基本原则。Express的哲学是在你的想法和服务器之间充当薄薄的一层。这并不意味着它不够健壮,或者没有足够多的有用特性,而是尽量少干预你,让你充分表达自己的思想,同时提供一些有用的东西。灵活的
Express哲学中另一个关键点是可扩展。Express提供了一个非常精简的框架,可以根据自己的需要添加Express功能中的不同部分,替换掉不能满足的部分。Web程序框架
网站是Web程序,网页也是Web程序,但Web程序的含义不止这些。一般而言,“程序”是具有功能的,它不止是内容的静态集合。单页Web程序
单页Web程序是比较新颖的想。不想之前的网站,用户每次访问不同的页面都要发起网络请求,单页Web程序把整个网站都下载到客户端浏览器上。经过初始下载后,用户访问不同的页面的速度更快了,因为几乎不需要或者只要很少的服务端通信。单页程序的开发可以使用Angular或Ember等流行框架,Express跟他们都配合的很好。多页和混合的Web程序
多页Web程序是更传统的方式。网站上每个页面都是通过向服务器发起单独的请求得到的。这种方式确实比较传统,但这并不意味着它没有优点,或者说单页程序更好。只是现在又很多选择了,你可以决定哪些内容应该作为单页程序提供,哪些应该通过不同的请求提供。“混合”说的就是同时使用这两种方式的网站。
Express简史
Express的缔造者TJ Holowaychuk说Express是在Sinatra的启发下创建的,后者是一个基于Ruby的框架。
Express跟Connect也有非常紧密的联系,Connect是一个Node的“插件”库。Connect创造了“中间件”这个术语来描述插入式的Node模块,它能在不同程度上处理web请求。在版本4.0之前,Express一直是绑定Connect的,在版本4.0中,Connect被去掉了,以便这些中间件可以各自独立升级。
Node: 一种新型Web服务器
- Node实现web服务器的方式跟Express很像,也非常精简。Node的搭建和配置非常容易,不像IIS或Apache要花费多年的时间才能掌握。
- Node与传统的Web服务器之间另一个主要区别就是:Node是单线程的。
- Node程序的另一个好处就是它的平台无关性。
Node的生态系统
Node处于这个技术栈的核心位置。Node让JavaScript从浏览器中分离出来,得以在服务器上运行,进而可以使用JavaScript写成的框架(比如Express)。
所有主流关系型数据库(MySQL、MariaDB、PostgreSQL、Oracle、SQLServer)都支持。
NoSQL数据库,“文档数据库”、“键/值对数据库”,Node同样支持,比如MongoDB。
MEAN: Mongo、Express、 Angular、Node。
注:摘自《Node与Express开发》一书。