本书通过7个实例分别讲解了Node.js在实战开发中的应用,这些章节既涉及Docker、Koa 等最新技术,也涉及OAuth2、命令行工具、消息队列、单元测试、编写C/C++模块等实战中经常会遇到的问题和应用场景。本书章节大体按照从简单到复杂的难度编排,每一章都通过一个实例指引读者从头开发一个Node.js应用,让读者循序渐进地学习Node.js,以及在实战开发中的编程技巧。本书不但着重讲解了每个实战案例所涉及的基础知识、思路和方法,也详细解释了源码的关键部分,希望有利于读者的学习和理解。
本书适合有一定Node.js基础及服务器端开发基础的读者阅读,也适合想了解Node.js可
以做什么、想迅速上手实践的读者阅读。
Node.js 案例 实战 Java 前端 后端
推荐序
写一本与Node.js实战相关的书是一项非常有挑战性的任务。众所周知,Node.js 自身
现在正处于一个飞速发展的阶段,它的第三方库同样正处于一个爆发增长期,各种新技
术和框架层出不穷,在短短几年里,它的第三方库的数量就已经超越了Java。因此,要
想完成这个任务,除了需要扎实的技术功底,还需要常人难及的耐心和表达能力,才能
够跟进社区的快速发展,并将知识同步给读者。
本书的几位作者都是Node.js 领域的牛人,不论是在社区、个人博客还是在GitHub 上,
都一直在孜孜不倦地分享与Node.js 实战相关的经验和文章。他们不仅有扎实的技术功
底,对于如何分享自己所掌握的知识也非常有经验。
本书在内容上同大部分技术入门书籍相比有所不同,它并没有花费太多篇幅来讲解具的
语言、框架等基础内容,而是通过7个实战项目来介绍Node.js,能够让读者直接感知
到Node.js到底能做什么,以及怎样才能写出可靠的Node.js代码。这些项目既包含了
Docker、Koa等最新技术,也包含了OAuth2、单元测试、消息队列等在实战中经常会遇
到的问题和应用场景,每个项目都有详尽的源码,因此在读本书时可边读边实践,通过
实际的项目来学习Node.js。如果你是一名Node.js新手,那么通过本书能够快速地掌握
如何使用Node.js来搭建应用;如果你具备一定的Node.js开发经验,那么也可以从中
学习到许多优秀的开发技巧。
翻开本书,打开编辑器,跟着这7个小项目,一步一步地开始深入了解Node.js的世界
吧!
何翊宇(dead_horse),天猫前端技术专家
前 言
自本书第1季《Node.js实战(双色)》出版以来,JavaScript界又发生了许多重大事件:React.js和AngularJS 2.0相继出现;ES6于2015年年中正式定稿;io.js从Node.js社区中分裂出来,后又与其合并。截至本书出版时,npm上有接近18万的模块,是去年同期的3倍,周下载量接近5.6亿次,是2014年同期的10倍。越来越多的创业公司和大公司都不同程度地使用了Node.js, Node.js已经成为一门成熟、稳定且具有独特魅力的技术。
延续《Node.js实战(双色)》的写作思路,本书不会从头讲解Node.js是什么,而是面向有一定Node.js基础的读者,建议读者把本书当作入门与进阶之间的过渡书籍来阅读。本书通过7个实例来讲解Node.js在不同场景下的应用,通过阅读本书,读者可以快速熟悉并使用Node.js进行开发。本书由4位作者共同编写,其中吴中骅完成了第1、3章的创作,雷宗民完成了第2、4章的创作,赵坤完成了第5章的创作,刘亚中完成了第6、7章的创作。
第1章主要介绍了如何使用Docker快速发布一个Nginx+Express+Redis项目,然后使用Jenkins进行简单的持续集成发布工作,其中介绍了Docker的基础概念、用法和Jenkins的安装配置方法。
第2章介绍了当前比较流行的OAuth2认证。OAuth2认证是当API服务器对外提供服务时,验证API使用者权限的有效的认证方式。本章主要介绍了使用Node.js搭建一个基本的API服务器所涉及的组件、方法和技术细节。
第3章主要介绍了如何在Node.js中使用消息队列软件RabbitMQ来解决Web服务器或应用服务器间的通信问题。对于服务器间的跨语言通信,以前一般采用XMLRPC方式,而现在比较流行采用HTTP的RESTful方式,使用RabbitMQ能够很灵活地处理这些事情。
第4章以一个静态博客系统构建工具作为实例,介绍如何使用Node.js的commander模块来编写一个命令行工具。
第5章介绍了ES6中生成器、yield,以及Node.js下一代Web开发框架Koa及其中间件的用法,最后通过搭建一个简单的论坛系统,让读者从实践中学习如何基于Koa快速开发Web应用。
第6章分享了作者在一家时尚杂志相关的互联网创业团队工作的部分经历:为该团队搭建一套较基础的Node.js测试服务,测试范围涵盖服务器、浏览器、Mag+、Adobe InDesign等平台。希望读者通过这个分享能够找到一种更为全面的方式去保证项目代码的质量。
第7章分享了作者与51Degrees团队远程工作的细节,可以让读者大致了解如何将一个已有的C/C++代码库拓展到Node.js平台上进行使用。
感谢电子工业出版社博文视点张国霞编辑的热心帮助和指导;感谢神猪、河蟹、AKI、何翊宇(dead_horse)、Kenneth Kan、Baptiste Gaillard、Jorn Zaefferer和Fish对本书的校验;再次感谢何翊宇为本书慷慨作序。
如果您对本书有任何评论或建议,可加入本书官方QQ群(156627943)进行讨论,或者到读者反馈网站http://nodejs.ucdok.com进行反馈,真诚欢迎您的意见与反馈。
有电子版计划吗?搬家不易