本书精选300余段Node.js代码,涵盖了服务器端脚本开发中的绝大多数要点、技巧与方法,堪称史上最实用的Node.js框架开发方面的参考书籍,是网站建设与服务器端开发人员的好帮手。本书的代码跨平台、跨设备、跨浏览器,充分向读者演示了如何使用Node.js框架的各项技术。
本书从Node.js框架的使用原理与应用场景出发,对最实用的Node.js代码段进行了全方位的介绍和演示。全书分为15章,包含控制台、模块和包管理、异步I/O与Async流程控制库、Buffer、进程管理、子进程通信、OS操作系统、文件系统、路径处理、TCP/UDP网络编程、流(Stream)、Web开发、常用工具及MySQL与MongoDB数据库交互等Node.js框架技术的内容,对提高网站建设与服务器端开发人员的Node.js技术水平有着非常重要的指导作用。
基于实践和学以致用的原理,全是干货。涵盖控制台、模块、包、异步I/O、Async流程控制、进程通信、TCP/UDP网络编程、流、Web开发、MySQL、MongoDB......
前 言
近些年Node.js框架作为一种服务器端脚本语言的开发技术,在IT圈内可谓是刮起了一股热旋风。因为大家发现,原来仅仅运行于浏览器端的JavaScript脚本也可以运行在服务器端,这简直太震撼人心了。于是,学习和掌握Node.js框架开发技术成了众多开发设计人员的热切期望。
本书是一本讲解代码实践的书,它为读者全面深入地讲解了针对各种场景的Node.js技术。300余段的代码给读者带来的不仅仅是全面的基础知识,更是为读者提供了设计简洁高效的服务器端代码与网站架构、应对跨平台与跨浏览器兼容、优化服务器性能等切实问题的解决之道。可以说,本书是学习Node.js框架开发技术的高效助手。
Node.js框架中的那些事儿
对于大多数刚刚接触Node.js框架的读者,可能一时无从下手,那么Node.js技术的难点都有哪些方面呢?
? 跨平台与浏览器的兼容
? 正确理解服务器端脚本使用
? 模块和包管理
? 异步I/O与Async流程控制库
? 进程与子进程通信
? 文件与路径处理
? Node.js事件处理机制
? TCP/UDP网络编程
? HTTP/HTTPS应用编程
? Node.js与AJAX应用
? Node.js与数据库交互
以上所有内容在本书的代码中都有讲解,除了这些常见Node.js技术难点外,本书还力求将最有用的Node.js代码段汇总在一起,提供各种解决实际问题的方案。
Node.js框架学习方法
11个字就能帮助我们更好地学习Node.js。
? 多看、多练:观摩成功的网页设计,分析并练习网页设计中常用的代码。
? 多想、多问:思考设计实现的原理,提出自己的问题并通过各种渠道来寻找答案。
? 多总结:记录前人已经探索出来的Node.js技巧,总结实战中碰到的问题及解决方案。
只要真正能做到勤思考、勤动手、勤总结,Node.js学习定能一马平川。
本书的编写特点
? 独特的Node.js切入点
与市面上其他Node.js相关的书不同,本书从最常见的场景应用角度出发,直接应用Node.js代码段实现功能操作,全部是最实用的例子,全部是最透彻的分析!
? 内容丰富,知识全面
本书以Node.js框架各个模块的场景应用作为基础,立体式、全方位地解释各种场景下的Node.js代码段应用,场景丰富、实例丰富,并拥有良好的可扩展性、可复用性。
? 去中心化,分布式学习
本书的代码实例都是独立的,读者可以从中间开始学,也可以从头开始学。代码跨平台、跨设备,可以在平板电脑上学,也可以在PC上学,甚至,手机上写代码也是完全可能的。
? Node.js框架原理与实践相结合
Node.js框架是一个强大的服务端脚本开发库,无论读者具有什么编程背景,都可以通过它来优化、改进自己的服务器网站。本书的代码段基于简单易学的原理,提供了丰富多样的操作特性,这使得本书成为了适用于各类脚本编程的必备工具。
? 涵盖内容全面
本书的实例从控制台应用、模块和包管理、异步I/O与Async流程控制库、Buffer、进程管理、子进程通信、OS操作系统、文件系统、路径处理、TCP/UDP网络编程、流(Stream)、Web开发、常用工具及数据库交互等方面的内容出发,由简入繁、点面结合、配合原理解释,给读者呈现了一场代码盛宴。
? 自发式学习
在学习代码前,先让读者练习实际上最基础却最容易做错的Node.js框架代码和面试题,激发读者的学习斗志。
本书的设计始于功能、终于代码,是IT设计人员的案头必备参考书。
本书的内容安排
本书共15章,各章节实现了不同类别的Node代码段。
第1章 主要介绍了Node.js框架的控制台模块,通过该模块的方法可以向操作系统控制台实现各种格式化输入和输出等操作,也就是读者所熟知的“读取-求值-输出”循环(Read-Eval-Print Loop,简称REPL)交互式的编程环境。
第2章 主要介绍了Node.js框架自有的一套模块加载系统,通过该模块可以把各个功能拆分、封装到不同的模块之中,在需要的时候调用该模块。Node.js框架使用模块和包来组织管理,从性质及加载方式上可以分为以下几类内容:核心模块、文件模块、从文件夹加载、文件夹作为模块和模块缓存。
第3章 主要介绍了Node.js异步I/O编程,Node.js框架在设计之初就被考虑作为一个高效的Web服务器而存在,因此高效的异步机制贯穿于整个Node.js框架的编程模型之中。通过本章的介绍,读者可以学到异步I/O机制、异步I/O应用和Async流程控制库应用等Node.js框架异步编程的内容。
第4章 主要介绍了Node.js框架中Buffer的概念,它可以理解为是缓冲区或临时存储区,是暂时存放输入、输出数据的一小块内存。如果读者学过C语言编程,对指针数组的概念有一定的了解的话,那么学习和掌握Node.js框架的Buffer就会容易很多。
第5章 主要介绍了使用Node.js框架中功能强大的进程管理模块(Process)的方法。Process模块是Node.js框架的一个全局内置对象,Node.js代码可以在任何位置访问该对象,实际上这个对象就是Node.js代码宿主的操作系统进程对象。使用Process模块可以截获进程的异常、退出等事件,可以获取进程的环境变量、当前目录、内存占用等信息,还可以进行工作目录切换、进程退出等操作。
第6章 主要介绍了使用Node.js框架的child_process模块创建子进程的四个方法,分别是spawn()、exec()、execFile()和fork()。其中spawn()是最原始的创建子进程的方法,其他三个都是通过对spawn()方法不同程度的进一步封装实现的。使用child_process模块提供的这些方法,可以实现多进程任务、操作shell和进程通信等操作,实用功能是非常强大的。
第7章 主要介绍了Node.js框架中的操作系统(OS)模块,该模块提供了一系列与操作系统相关的函数方法,不过这些方法相对简单,实现的功能也十分有限。
第8章 主要介绍了Node.js框架中的文件系统(File System)模块如何来支持I/O操作的方法,这些操作方法是对标准POSIX函数的简单封装,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX文件系统操作。
第9章 主要介绍了Node.js框架中的路径处理(Path)模块、url路径处理(url)模块以及字符串解析(Query String)模块,这些模块提供了一系列与路径解析处理相关的函数方法,这些方法对于处理常规的需求是足够的。
第10章 主要介绍了Node.js框架中对TCP/UDP网络编程方面的支持,Node.js框架为设计人员提供了网络(Net)模块来支持TCP协议应用,数据报套接字(UDP)模块来支持UDP协议应用,这两个模块提供了一系列与网络应用相关的函数方法,通过这些方法可以构建基本的网络应用。
第11章 主要介绍了Node.js框架中的抽象接口流(Stream)模块,流(Stream)模块操作最主要的是.pipe()方法,它可以为开发者提供可以重复使用的统一的接口,通过抽象的流(Stream)接口来控制流(Stream)之间的读写平衡。
第12章 主要介绍了应用Node.js框架中的HTTP模块与HTTPS模块开发Web应用的方法,这两个模块基于HTTP协议与HTTPS协议开发,提供了一系列与Web应用开发相关的函数方法,通过这些方法可以构建各种功能复杂且强大的Web应用。
第13章 主要介绍了Node.js框架中的常用工具(Util)模块,该模块是为了解决核心JavaScript的功能过于精简而设计的。该模块可以实现对一个原型对象的继承功能,实现对象格式化操作、将任意对象转换为字符串操作、调试输出功能、正则表达式验证等。
第14章 主要介绍了Node.js框架与MySQL数据库交互的方法,主要选用的是目前人气最高的node-mysql开源项目作为Node.js框架MySQL扩展库,该开源项目提供了MySQL数据库对Node.js框架的完整支持,具有一套与数据库开发相关的函数方法,通过这些方法就可以非常方便地构建Node.js数据库应用。
第15章 主要介绍了Node.js框架与MongoDB数据库交互的方法,主要选用的是同名的mongodb开源项目作为Node.js框架的MongoDB扩展库,该扩展库具有一套与数据库开发相关的函数方法,通过这些方法就可以非常方便地构建Node.js数据库应用。
本书面对的读者
? Web服务器设计入门者
? Web服务器开发入门者
? Node.js框架学习爱好者
? 由JavaScript向Node.js框架转型的开发人员
? 中小型企业网站开发者
? 大中专院校的学生
? 各种IT培训学校的学生
? 网站后台开发人员
? 网站建设与网页设计的相关威客兼职人员
本书的服务
笔者能力有限,如果读者发现我们在写作过程中有什么疏漏,或者您对本书有什么疑问,可通过以下方式与我们沟通。
? QQ群:296811675,作者在线答疑。
? 扫描封底的微信二维码,时刻参与我们的图书互动。
? 通过新浪微博@博文视点Broadview,了解我们发布的信息和各种前端流行技术。
? 博文视点官方网站http://www.broadview.com.cn/,下载本书所有实例源代码。
? Github,https://github.com/kingwjz/Node.js-code,了解代码的实时更新和迭代过程,可以在每章代码下参与讨论,也可以观看其他读者提出的问题,还可以随时随地下载代码。
很多读者在学习过程中苦于无法交流,小故障无法及时解决,加入我们的服务方阵,我们将为您提供终生免费的服务。一本书、一段情、一辈子。
本书的思维导图
编者推荐
本书摒弃传统的说教模式,每段代码都是单独的功能型页面,读者可以从全书的任意一点开始线性阅读。本书的目的就是将最有用的代码与读者分享,包含了服务器设计人员在实战中必须具备的所有技巧和方法,读者可以拿来就用。本书300余段代码也许并不是最优的代码,但笔者提供了Github地址,与全世界IT工程师一起优化了这些代码,并实现了更新迭代,以保证读者始终能看到最好的、最高效的、最实用的Node代码段。这是一本市场上绝无仅有的Node实战书,是一本值得拥有的Node设计书。