当然,Node 处于这个技术栈的核心位置。就是它让JavaScript 从浏览器中分离出来,得以在服务器上运行,进而可以使用JavaScript 写成的框架(比如Express)。另外一个重要的组件是数据库,这将在第13 章中进行详细介绍。除了最简单的Web 程序,所有的程序都需要数据库,并且Node 生态系统中的数据库更多。 所有主流关系型数据库(MySQL、MariaDB、PostgreSQL、Oracle、SQL Server)的接口都有,这一点并不奇怪,因为忽视那些已经成熟的“巨无霸”太不明智了。然而Node 开发的出现带动了一种新式的数据库存储方式,这种方式被称为“NoSQL 数据库”。用否定的方式来下定义有时并不恰当,所以我们更准确地称之为“文档数据库”或“键/ 值对数据库”。它们提供了一种概念上更简单的数据存储方式。这种数据库有很多,但MongoDB 是其中的佼佼者,也是我们要在本书中使用的数据库。 注1:通常被称作“即时”编译。 因为构建一个功能性网站要借助很多种技术,因此衍生了一种用来描述网站构建基础“技术栈”的缩略语。比如说,Linux、Apache、MySQL 和PHP 被称为LAMP 栈。MongoDB的工程师Valeri Karpov 发明了一个缩略语MEAN, 指代Mongo、Express、Angular 和Node。尽管它确实朗朗上口,却有其局限性:可选的数据库和应用程序框架有很多,MEAN 无法体现这个生态系统的多样性(它还漏掉了一个我认为非常重要的组件:模板引擎)。 发明一个兼容并包的缩略语是一个有趣的事情。其中无可替代的组件当然是Node。尽管还有其他的服务器端JavaScript 容器,但Node 是其中的执牛耳者。尽管Express 在主导地位上接近Node,但它也不是唯一可用的Web 程序框架。另外两个通常来说对Web 程序开发必不可少的组件是数据库服务器和模板引擎(模板引擎提供了PHP、JSP 或Razor 自带的功能:将代码和标记输出无缝结合起来)。对于最后两种组件而言,没有明显的领跑者,我认为对此加以限制有害无益。 将所有这些技术结合到一起的是JavaScript, 所以为了做到兼容并包, 我将其称为“JavaScript 技术栈”。对于本书而言,即指Node、Express 和MongoDB。
Node与Express开发——1.6 Node的生态系统
书名: Node与Express开发
作者: [美] Ethan Brown
出版社: 人民邮电出版社
译者: 吴海星 | 苏 文
出版年: 2015-1
页数: 276
定价: 69.00元
装帧: 平装
ISBN: 9787115380333