前言

读懂本书

Node.js迅速崛起

Node.js框架作为一种服务器端脚本语言的开发技术,近些年在IT圈内可谓是掀起一股热潮,崛起之迅速令人瞠目。设计人员发现,原来仅仅运行于浏览器端的JavaScript脚本也可以完美地运行在服务器端了,这确实太震撼人心了。于是,掌握Node.js框架开发技术成为众多设计人员的热切期望。

本书是一本讲究实践的书,其为读者全面深入地讲解了针对各种场景的Node.js技术。全书百余个代码实例给读者带来的不仅仅是全面的基础知识,更是为读者提供了设计简洁高效的服务器端代码与网站架构、应对跨平台与跨浏览器兼容、优化服务器性能等切实问题的解决之道。可以说,这是一本学习Node.js框架开发技术的高效手册。

Node.js支持跨终端、多平台的开发,无论是传统的PC客户端,或是现今流行的移动端设备,或是Windows系统、Android系统、iOS系统,均是Node.js可以发挥威力的舞台。可以说,今天Node.js框架的迅速崛起是由其内在特性决定的。

Node.js的技术特点

Node.js是基于先进的Google V8引擎开发的JavaScript服务器端平台,可用来快速地搭建易于扩展的Web应用。大多数刚刚接触Node.js框架的初学者可能一时无从下手,那么Node.js技术的主要特点有哪些呢?

笔者认为,Node.js跨平台的浏览器兼容性、服务器端脚本使用、模块和包管理、进程管理与异步I/O、进程与子进程通信、文件与路径处理、事件处理机制、TCP/UDP网络编程管理、Web应用管理、Node.js数据库管理以及常用工具Util开发等方面的内容,都属于Node.js技术的特点所在。

本书详细介绍这些技术内容,并通过具体的代码实例帮助读者学习和掌握这些知识点的原理及使用方法,真正实现理论与实践相结合。

本书的内容安排

本书共分10章,各章节针对不同的Node.js功能模块进行详细的介绍。

第1章主要介绍关于Node.js框架安装、环境搭建和开发工具使用方面的内容,旨在帮助读者快速掌握Node程序的学习方法。

第2章主要介绍Node.js框架的控制台模块,通过该模块的方法可以向操作系统控制台实现各种格式化输入和输出等操作,也就是读者熟知的“读取-求值-输出”循环(Read-Eval-Print Loop,REPL)交互式的编程环境。

第3章主要介绍Node.js框架中的文件系统(File System)模块如何支持I/O操作的方法,这些操作方法是对标准POSIX函数的简单封装,其提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX文件系统操作。

第4章主要介绍使用Node.js框架进程管理模块(Process)以及Node.js异步管理和I/O编程。Process模块是Node.js框架的一个全局内置对象,Node.js代码可以在任何位置访问该对象,实际上这个对象就是Node.js代码宿主的操作系统进程对象。使用Process模块可以截获进程的异常、退出等事件,可以获取进程的环境变量、当前目录、内存占用等信息,还可以操作工作目录切换、进程退出等操作。Node.js框架在设计之初就考虑作为一个高效的Web服务器而存在,因此高效的异步机制贯穿于整个Node.js框架的编程模型中,读者可以学习到异步I/O机制、异步I/O应用和Async流程控制库应用等Node.js框架异步编程的内容。

第5章主要介绍使用Node.js框架的child_process模块创建子进程的4种方法,分别是spawn()、exec()、execFile()和fork()方法。其中,spawn()方法是最原始的创建子进程的方法,其他3种都是通过对spawn()方法不同程度的进一步封装实现的。使用child_process模块提供的这些方法可以实现多进程任务、操作Shell和进程通信等操作,实用功能是非常强大的。

第6章主要介绍Node.js框架中Buffer的概念,其可以理解为缓冲区或临时存贮区,是用来暂时存放输入输出数据的一小块内存。如果读者学习过C语言编程,对于指针数组的概念有一定了解,那么学习并掌握Node.js框架的Buffer就会容易很多。

第7章主要介绍Node.js框架中对于TCP/UDP网络编程方面的支持,Node.js框架为设计人员提供了网络(Net)模块来支持TCP协议应用,提供了数据报套接字(UDP)模块来支持UDP协议应用,这两个模块提供了一系列与网络应用相关的函数方法,通过这些方法就可以构建基本的网络应用。

第8章主要介绍应用Node.js框架中的HTTP模块与HTTPS模块开发Web应用的方法,这两个模块基于HTTP协议与HTTPS协议开发,提供了一系列与Web应用开发相关的函数方法,通过这些方法可以构建各种功能复杂且强大的Web应用。

第9章主要介绍Node.js框架与MySQL数据库和MongoDB数据库交互的方法。关于MySQL数据库,主要选用目前人气最高的node-mysql开源项目作为Node.js框架的MySQL扩展库,该开源项目提供了MySQL数据库对Node.js框架的完整支持,具有一套与数据库开发相关的函数方法,通过这些方法可以非常方便地构建Node.js数据库应用。关于MongoDB数据库,主要选用同名的MongoDB开源项目作为Node.js框架的MongoDB扩展库,该扩展库具有一套与数据库开发相关的函数方法,通过这些方法可以非常方便地构建Node.js数据库应用。

第10章主要介绍Node.js框架中的常用工具(Util)模块,该模块是为了解决核心JavaScript的功能过于精简而设计的。应用该模块可以实现对一个原型对象的继承功能,实现对象格式化操作,将任意对象转换为字符串的操作,调试输出功能,验证正则表达式和验证对象类型,等等。

本书适合你吗?

本书涵盖绝大部分关于Node.js基础和进阶的内容,全程做到将知识点与应用实例相结合,通过大量的代码实例帮助读者快速掌握Node.js框架的编程技巧,并应用到实践开发中。本书通过这种学以致用的方式来增强读者的阅读兴趣,无论是基础内容还是提高内容,相信读者都可以从中获益。

本书涉及的主要软件或工具

• WebStorm

• EditPlus

• Mozilla Firefox

• Google Chrome

• Sublime Text

• UltraEdit

• Notepad

本书涉及的技术或框架

• HTML

• HTML 5

• CSS 3

• JSON

• MIME

• JavaScript

• AJAX

• Express

• HTTP

• HTTPS

• ECMAScript

• MySQL

• MongoDB

• RegExp

• Node.js

• NPM

本书特点

(1)本书以简单、通用的Node.js代码实例出发,抛开枯燥的纯理论知识介绍,通过实例讲解的方式帮助读者学习Node.js程序设计语言。

(2)本书内容涵盖Node.js所涉及的绝大部分开发知识,将这些内容整合到一起,可以系统地了解并掌握这门语言的全貌,为进入大型Web项目的开发做好铺垫。

(3)本书对于实例中的知识难点做出了详细的分析,能够帮助读者有针对性地提高Node.js编程开发技巧。

(4)本书在知识点上按照类别进行了合理地划分,全部代码实例都是独立的,读者可以从头开始阅读,也可以从中间开始阅读,不会影响学习进度。

(5)本书代码遵循重构原理,避免代码污染,真心希望读者能写出优秀的、简洁的、可维护的代码。

代码下载

本书实例代码可扫描右侧的二维码获取。

如果下载有问题,请联系booksaga@163.com,邮件主题为“Node.js全程实例”。

本书读者

• Node.js框架与Web服务器开发初学者

• JavaScript开发初学者和前端开发人员

• 由JavaScript向Node.js框架转型的开发人员

• 网站建设与网页设计的开发人员

• 需要Web前端开发实践的各类IT培训学校的学生

• 大中专院校Web前端开发课程的学生

编 者

2019年9月