Node.js开发指南-郭家寳

    Node.js开发指南-郭家寳

    编辑推荐

    《Node.js发指南》中Node.js是一种新兴的源技术,它将JavaScript从Web浏览器移植到常规的服务器端,使用Chrome的V8虚拟机来解释和执行JavaScript代码,能用于构建高性能、高可扩展的服务器和客户端应用,以实现真正“实时的Web应用”。

    Node.js在GitHub上吸引了大量发人员的注意,目前已经有不少可以直引用的优秀模块。

    内容简介

    Node.js开发指南》首先简要介绍Node.js,然后通过各种示例讲解Node.js的基本特性,再用案例式教学的方式讲述如何用Node.js进行Web开发,接着探讨一些Node.js进阶话题,最后展示如何将一个Node.js应用部署到生产环境中。

    Node.js开发指南》面向对Node.js感兴趣,但没有基础的读者,也可供已了解Node.js,并对Web前端/后端开发有一定经验,同时想尝试新技术的开发者参考。

    《Node.js发指南》首先简要介绍Node.js,然后通过各种示例讲解Node.js的基本特性,再用案例式教学的方式讲述如何用Node.js行Web发,着探讨一些Node.js阶话题,最后展示如何将一个Node.js应用部署到生产环境中。

    《Node.js发指南》面向对Node.js感兴趣,但没有基础的读者,也可供已了解Node.js,并对Web前端/后端发有一定经验,同时想尝试新技术的发者参考。

    作者简介

    郭家寶(BYVoid),清华大学计算机系2010级本科生,曾获得信息学奥林匹克竞赛(NOI)金牌。他从中学始涉足源发,参与过“汉典网”等许多Web项目的前后端设计发,同时是Linux输法ibus-pinyin的作者。他从2009年Node.js诞生之始,就一直在关注它的发展,有许多使用Node.js建立网站的经验,活跃于CNode社区。

    目录

    第1章  Node.js简介  1
    1.1  Node.js 是什么  2
    1.2  Node.js 能做什么  3
    1.3  异步式 I/O 与事件驱动  4
    1.4  Node.js 的性能  5
    1.4.1  Node.js 架构简介  5
    1.4.2  Node.js 与 PHP + Nginx  6
    1.5  JavaScript 简史  6
    1.5.1  Netscape 与 LiveScript  7
    1.5.2  Java 与 Javascript  7
    1.5.3  微软的加入—— JScript  8
    1.5.4  标准化—— ECMAScript  8
    1.5.5  浏览器兼容性问题  9
    1.5.6  引擎效率革命和 JavaScript 的未来  9
    1.6  CommonJS  10
    1.6.1  服务端 JavaScript 的重生  10
    1.6.2  CommonJS 规范与实现  11
    1.7  参考资料  12
    第2章  安装和配置Node.js  13
    2.1  安装前的准备  14
    2.2  快速安装  14

    展开收缩

    2.2.1  Microsoft Windows系统上安装Node.js  14
    2.2.2  Linux 发行版上安装Node.js  16
    2.2.3  Mac OS X上安装Node.js  16
    2.3  编译源代码  17
    2.3.1  在 POSIX 系统中编译  17
    2.3.2  在 Windows系统中编译  18
    2.4  安装Node 包管理器  18
    2.5  安装多版本管理器  19
    2.6  参考资料  21
    第3章  Node.js快速入门  23
    3.1  开始用 Node.js 编程  24
    3.1.1  Hello World  24
    3.1.2  Node.js 命令行工具  25
    3.1.3  建立 HTTP 服务器  26
    3.2  异步式 I/O 与事件式编程  29
    3.2.1  阻塞与线程  29
    3.2.2  回调函数  31
    3.2.3  事件  33
    3.3  模块和包  34
    3.3.1  什么是模块  35
    3.3.2  创建及加载模块  35
    3.3.3  创建包  38
    3.3.4  Node.js 包管理器  41
    3.4  调试  45
    3.4.1  命令行调试  45
    3.4.2  远程调试  47
    3.4.3  使用 Eclipse 调试 Node.js  48
    3.4.4  使用 node-inspector 调试Node.js  54
    3.5  参考资料  55
    第4章  Node.js核心模块  57
    4.1  全局对象  58
    4.1.1  全局对象与全局变量  58
    4.1.2  process  58
    4.1.3  console  60
    4.2  常用工具 util  61
    4.2.1  util.inherits  61
    4.2.2  util.inspect  62
    4.3  事件驱动 events  63
    4.3.1  事件发射器  64
    4.3.2  error 事件  65
    4.3.3  继承 EventEmitter  65
    4.4  文件系统 fs  65
    4.4.1  fs.readFile  66
    4.4.2  fs.readFileSync  67
    4.4.3  fs.open  67
    4.4.4  fs.read  68
    4.5  HTTP 服务器与客户端  70
    4.5.1  HTTP 服务器  70
    4.5.2  HTTP 客户端  74
    4.6  参考资料  77
    第5章  使用Node.js进行Web开发  79
    5.1  准备工作  80
    5.1.1  使用http模块  82
    5.1.2  Express 框架  83
    5.2  快速开始  84
    5.2.1  安装 Express  84
    5.2.2  建立工程  85
    5.2.3  启动服务器  86
    5.2.4  工程的结构  87
    5.3  路由控制  89
    5.3.1  工作原理  89
    5.3.2  创建路由规则  92
    5.3.3  路径匹配  93
    5.3.4  REST 风格的路由规则  94
    5.3.5  控制权转移  95
    5.4  模板引擎  97
    5.4.1  什么是模板引擎  97
    5.4.2  使用模板引擎  98
    5.4.3  页面布局  99
    5.4.4  片段视图  100
    5.4.5  视图助手  100
    5.5  建立微博网站  102
    5.5.1  功能分析  102
    5.5.2  路由规划  102
    5.5.3  界面设计  103
    5.5.4  使用Bootstrap  104
    5.6  用户注册和登录  107
    5.6.1  访问数据库  107
    5.6.2  会话支持  110
    5.6.3  注册和登入  111
    5.6.4  页面权限控制  120
    5.7  发表微博  123
    5.7.1  微博模型  123
    5.7.2  发表微博  125
    5.7.3  用户页面  126
    5.7.4  首页  127
    5.7.5  下一步  129
    5.8  参考资料  129
    第6章  Node.js进阶话题  131
    6.1  模块加载机制  132
    6.1.1  模块的类型  132
    6.1.2  按路径加载模块  132
    6.1.3  通过查找node_modules目录加载模块  133
    6.1.4  加载缓存  134
    6.1.5  加载顺序  134
    6.2  控制流  135
    6.2.1  循环的陷阱  135
    6.2.2  解决控制流难题  137
    6.3  Node.js 应用部署  138
    6.3.1  日志功能  138
    6.3.2  使用cluster模块  140
    6.3.3  启动脚本  142
    6.3.4  共享80端口  143
    6.4  Node.js 不是银弹  144
    6.5  参考资料  146
    附录A  JavaScript的高级特性  147
    附录B  Node.js编程规范  167
    索引  175

    前言

    这本书讲了什么

    本书是一本 Node.js 的入门教程,写给想了解 Node.js 的开发人员。我的目标是使读者通过阅读本书,学会使用 Node.js 进行 Web 后端开发,同时能熟悉事件驱动的异步式编程风格,以便进一步了解 Node.js 的许多高级特性,以及它所应用的更多领域。

    本书共6章,分别讨论了 Node.js的背景、安装和配置方法、基本特性、核心模块以及一些进阶话题。除此之外,还有2个附录,分别介绍了JavaScript 的高级特性和 Node.js 编程规范。下面简要概述各章的主要内容。

    第1章“Node.js 简介”

    这一章概述了什么是Node.js。读过这章后,你将对 Node.js 有一个基本的认识,同时了解它与 JavaScript 的深厚渊源。

    第2章“安装和配置Node.js”

    这一章讲述了如何在各种不同的环境下安装和配置 Node.js 及其基本运行环境,同时你你可以了解到如何编译Node.js,以及多版本管理工具。

    第3章“Node.js 快速入门”

    这一章讲解Node.js的基础知识,你将会学到如何使用 Node.js 的基本环境和工具进行开发、运行和调试。同时,还会讲解异步式I/O与事件式编程的一些重要概念,这些概念将会贯穿全书。此外这一章还详细介绍了 Node.js 的模块和包的系统,这些都是开发中经常会碰到的内容。

    第4章“Node.js 核心模块”

    这一章以全局对象、基本工具、事件发射器、文件系统和 HTTP 为代表,介绍了 Node.js 最常用的核心模块。你将会在后面的章节及以后的开发中经常与这些模块打交道。

    第5章“使用 Node.js 进行 Web 开发”

    这一章是本书的实践性章节,一步一步教你如何从零开始用 Express 框架创建一个网站,实现路由控制、模板解析、会话管理、数据库访问等功能,最终创建一个 Web 2.0 微博网站。

    第6章“Node.js 进阶话题”

    这一章涉及几个进阶话题,包括模块加载机制、控制流分析和优化、生产环境的应用部署等内容,最后还讨论了 Node.js 适用的范围,帮助读者在今后的开发中作出更好的取舍。

    附录A“JavaScript 的高级特性”

    这个附录介绍了 JavaScript 的一些高级特性,如函数作用域、闭包和对象的操作等内容。这些特性在浏览器端的JavaScript 开发中并没有受到应有的重视,而在 Node.js 中却十分常见,阅读这个附录可以帮助你更好地理解并运用 JavaScript 进行复杂的网站开发。

    附录B“Node.js 编程规范”

    这个附录介绍了 Node.js 代码风格的一些约定,遵守这些约定可以让你的代码更清晰、易懂,同时也有利于接口开发的统一。该附录还分享了一些开发经验,可以让程序避免很多意外错误和性能损失。

    谁应该阅读本书

    本书的目标读者是想要学习 Node.js,但没有任何系统的经验的开发者。如果你听说过 Node.js,并被它许多神奇的特性吸引,那么这本书就是为你准备的。通过阅读本书,你可以对 Node.js 有全面的认识,学会如何用 Node.js 编程,了解事件驱动、异步式 I/O 的编程模式,同时还可以掌握一些使用 JavaScript 进行函数式编程的方法。

    本书假设读者已经学过至少一门编程语言,对基本的程序设计语言概念(如变量、函数、递归、对象)有所了解。如果你是首次学习编程语言,我建议你先学一门常见的且容易入门的语言,如 Java 或 C。

    如何阅读本书

    熟悉浏览器端 JavaScript 的读者将很容易学会 Node.js 的许多特性,包括事件式编程、闭包、回调函数等,因为这些特性已经在浏览器中被广泛应用。同时,你还可以学到 Node.js 在Web 开发中的服务器端与浏览器端的结合方式,这无论是对前端设计还是后端开发都是有利的。你还会对 JavaScript 有一个全新的认识,因为服务端的 JavaScript 中没有 DOM 和 BOM,也不存在浏览器之间的兼容性问题。

    不熟悉 JavaScript但是了解C、Java、C++、C#的读者将很容易学会 JavaScript 的语言特性及 Node.js 的基本机制,如模块和包。你需要关注的仅仅是 JavaScript 语言的特别之处,以及服务器端开发中需要注意的一些要点。

    已经非常了解 Web 后端开发(如 PHP、ASP.net、Ruby on Rails、Django 等)的读者,本书将通过 Node.js 给你一个不同的视野。你会发现 Node.js 和这些传统的框架有很大的区别,因为它使用了事件式编程和异步 I/O,所以你需要改变一些已有的思维方式。同时,你还能享受到 Web 前后端紧密配合带来的新鲜感,并可能对 Ajax 有全新的认识。

    获取正版《Node.js开发指南》直达购买
    • 微信号
    • 网站问题、用户注册登录请联系站长,看到第一时间及时回复。
    • weinxin
    • 公众号
    • 慧眼看每日荐书,关键字找书,新功能陆续增加中,敬请关注!
    • weinxin
    huiyan
    • 本文由 发表于 2019-05-2114:54:21
    • 转载请务必保留本文链接:https://www.huiyankan.com/2019052114246.html