前言
为何写作本书
近年来,随着智能手机与HTML 5的不断普及,JavaScript脚本语言的重要性也随之不断提升,IT业界涌现了大量学习与善用JavaScript脚本语言的工程师,其中许多工程师对任何服务器端开发语言均一无所知。很多工程师提出,如果能够让服务器端与客户端均使用一种脚本语言,则无疑可以减少服务器端的开发难度,提高服务器端的开发效率。另一方面,由于近几年许多JavaScript引擎中均内置了JIT(Just In Time)编译器,使JavaScript引擎的处理速度得到了大幅度提高,JavaScript脚本语言的运行速度不会逊色于任何服务器端开发语言。
据此现状,2009年8月,IT业界制定了CommonJS标准,用于标准化服务器端JavaScript脚本语言,制定服务器端JavaScript脚本语言中所需要实现的处理。
同年,美国人Ryan Dahl推出了第一个遵循CommonJS标准的服务器端JavaScript脚本语言开发框架——Node.js。在Node.js内部,运行的是Google开发的高性能V8JavaScript脚本语言,该语言可以运行在服务器端。Node.js的一个最重要的特性是通过单线程实现异步处理环境。通常,提及异步处理,开发者们首先会联想到的是服务器端多线程环境,在Node.js中,通过事件环与非阻塞型I/O机制实现服务器端的异步处理。
为了帮助国内的Web开发者更好地学习Node.js开发框架,笔者特此推出本书,希望国内的Web开发者们能够通过学习本书尽早地运用Node.js框架开发出高效的Web服务器以及运行于该Web服务器中的Web应用程序。
读者对象
根据不同使用需要,本书适用于如下读者:
·对Web网站或Web应用程序的开发技术感兴趣或者打算从事Web网站或Web应用程序开发的技术人员。
·Web网站或Web应用程序的开发者(包括Web前端开发工程师及后端开发工程师)。
·有关Web网站或Web应用程序开发项目的项目管理人员。
·开设相关课程的大专院校及培训机构。
如何阅读本书
本书内容分三大部分展开。
第一部分:第1章详细阐述什么是Node.js框架,为什么要选择Node.js框架进行服务器端的开发,使用Node.js框架能够解决什么问题,Node.js框架适合用于开发哪些应用程序,如何下载及使用Node.js框架,Node.js框架的主要特性,使用Node.js框架时必须了解的基础知识。第2章~第12章针对Node.js v0.10版中的各模块进行展开阐述,详细阐述这些模块的作用,如何使用这些模块,这些模块中所提供的各对象、属性、方法及事件。
第二部分:第13章~第15章分别阐述在使用Node.js框架进行Web服务器端的开发时极有可能利用到的第三方开发包,包括如何在Node.js应用程序中使用关系型数据库及NoSQL型数据库,如何使用Express框架开发Web应用程序,如何使用Socket.io类库实现WebSocket通信。
第三部分:第16章介绍两个综合案例,在第一个案例中,我们讲述如何结合使用Node.js与Socket.io类库制作一个聊天室应用程序的服务器端及客户端,在第二个综合案例中,我们讲述如何结合使用Node.js与Express框架制作一个Web应用程序的服务器端及客户端。
在本书的每一章中,每一个正在阐述的理论点均使用代码实例进行具体形象地说明,每个实例中所涉及的理论知识都以通俗易懂的语言进行阐述,大部分实例均使用图片来形象说明该实例的运行效果。本书所有实例代码都经笔者亲自测试运行成功,提供给读者学习使用。每个实例的详细代码及其使用到的脚本文件、各种资源文件都可在华章公司网站(www.hzbook.com)的本书页面上下载。读者可以对这些代码进行修改,以便观察各种不同效果,加深对实例代码的理解。