内容简介:
作为服务器端的JavaScript解释器,Node是一个轻量高效的开发平台,用于构建响应快速、高度可扩展的Web应用。它使用事件驱动和非阻塞的I/O模型,非常适合开发数据密集、对实时响应要求高的分布式应用,在微软、eBay、LinkedIn、雅虎等世界知名公司均有成功的应用。 本书是Node开发基础教程,通过大量示例介绍如何使用HTTP服务器和客户端对象、Connect和Express应用框架、异步执行算法,以及如何结合使用SQL和MongoDB数据库。另外,本书同时针对开发和部署环境给出了实用的Node安装建议,介绍了HTTP服务器和客户端应用的开发,阐述了很多Node使用方式,包括在应用中使用数据库存储引擎,以及在有无Connect/Express Web应用框架的情况下开发网站的方法。本书还介绍了Node的CommonJS模块系统,帮助开发人员实现一些重要的面向对象设计方案。
本书适合具有一定JavaScript和Web应用开发基础知识、打算使用服务器端JavaScript开发高性能Web应用的开发人员阅读。
本书内容包括:
服务器端JavaScript对于Web应用开发的作用
使用Node时,针对性能和吞吐量作出成熟的架构选择
为开发和部署服务器端Web应用安装和使用Node
Connect和Express应用框架的使用
在应用中设置SQL或MongoDB数据库系统
区分并评估同步算法和异步算法
目 录
第1章 Node入门 1
1.1 Node能做什么 1
1.2 为什么要使用Node 3
1.2.1 架构问题:线程,还是异步事件驱动 4
1.2.2 性能和利用率 5
1.2.3 服务器利用率、成本和绿色Web托管服务 6
1.3 Node、Node.js还是Node .JS 7
1.4 小结 7
第2章 安装并配置Node 8
2.1 系统要求 8
2.2 在符合POSIX标准的系统上安装 9
2.3 在Mac OS X上安装开发者工具 9
2.3.1 在home目录下安装 9
2.3.2 在系统级目录下安装Node 11
2.3.3 在Mac OS X上使用MacPorts安装 12
2.3.4 在Mac OS X上使用homebrew安装 12
2.3.5 在Linux上使用软件包管理系统安装 12
2.3.6 同时安装并维护多个Node 13
2.4 验证安装成功与否 14
2.4.1 Node命令行工具 14
2.4.2 用Node运行简单的脚本 15
2.4.3 用Node启动服务器 16
2.5 安装npm——Node包管理器 16
2.6 系统启动时自动启动Node服务器 17
2.7 小结 22
第3章 Node模块 23
3.1 什么是模块 23
3.1.1 Node模块 24
3.1.2 Node解析require ('module')的方式 24
3.2 Node包管理器 28
3.2.1 npm包的格式 29
3.2.2 查找npm包 30
3.2.3 使用npm命令 31
3.2.4 Node包版本的标识和范围 38
3.2.5 CommonJS模块 39
3.3 小结 40
第4章 几种典型的简单应用 41
4.1 Math Wizard 41
4.2 不依赖框架的实现 41
4.2.1 路由请求 42
4.2.2 处理URL查询参数 43
4.2.3 乘法运算 44
4.2.4 其他数学函数的执行 45
4.2.5 扩展Math Wizard 48
4.2.6 长时间运行的运算(斐波那契数) 48
4.2.7 还缺什么功能 51
4.2.8 使用Connect框架实现Math Wizard 52
4.2.9 安装和设置Connect 52
4.2.10 使用Connect 53
4.3 使用Express框架实现Math Wizard 55
4.3.1 准备工作 55
4.3.2 处理错误 59
4.3.3 参数化的URL和数据服务 60
4.4 小结 64
第5章 简单的Web服务器、EventEmitter和HTTP客户端 65
5.1 通过EventEmitter发送和接收事件 65
5.2 HTTP Sniffer——监听HTTP会话 67
5.3 基本的Web服务器 69
5.4 MIME类型和MIME npm包 78
5.5 处理cookie 79
5.6 虚拟主机和请求路由 79
5.7 发送HTTP客户端请求 79
5.8 小结 81
第6章 存取数据 83
6.1 Node的数据存储引擎 83
6.2 SQLite3——轻量级的进程内SQL引擎 83
6.2.1 安装SQLite 3 83
6.2.2 用SQLite3实现便签应用 84
6.2.3 在Node中使用其他SQL数据库 95
6.3 Mongoose 96
6.3.1 安装Mongoose 96
6.3.2 用Mongoose实现便签应用 97
6.3.3 对MongoDB数据库的其他支持 102
6.4 如何实现用户验证 102
6.5 小结 104
Asupremelyusablenuts-and-boltsguideforbeginnersAdailytoolofthetradeforspecialist...
《方汉奇文集(增订版)》内容简介:《方汉奇文集》(增订版)收录了方先生半个多世纪的研究成果和心得,史料丰富、考据严谨、笔法
微机原理与接口技术 内容简介 本书是省精品课程教材,依据电子信息科学与电气信息类平台课程教学基本要求编写,以80x86为主,介绍微机原理的基本理论与技术应用。主...
《第一本哲学漫画书:尼采的哲学思想》内容简介:《第一本哲学漫画书:尼采的哲学思想》是参考的《查拉图斯特拉如是说》、《善恶的
《南京传》内容简介:春归秣陵树,人老建康城。作为一位公认的文章大家,叶兆言对他写了四十年的南京有着独特理解。南京为他提供了
网络伴随我们的时间不算很长,然而因特网的流行和商业化的普及速度却是惊人的,这促使人类活动和社会的每个领域都发生了改变。我
《Python数据可视化编程实战》是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法
计算机网络:自顶向下方法与Internet特色:第3版 内容简介 本书以Internet为特色,采用自顶向下的方法由应用层到物理层顺序讲述计算机网络的基本原理及...
5所世界著名设计学府:哈佛大学、哥伦比亚大学、库珀联盟、麻省理工学院、宾夕法尼亚大学,5个精彩纷呈的故事。学习设计到底是追
李永宏、马强、赵琦编著的《语言科学研究的MATLAB实现》主要讨论MATLAB的程序设计方法及其在语言科学研究中的初步应用,通过层次
Touchandgesturaldeviceshavebeenhailedasnextevolutionarystepinhuman-computerinter...
《文字设计基础教程》清晰简要地阐述了文字设计的理论和实际应用。编者将文字设计的历史、字体设计的方法以及字体设计在印刷和网
《大学生心理健康朋辈互助(大学生心理自助丛书)》内容简介:本书梳理了国外大学生朋辈心理互助的基本话题,并对我国大学生心理互
《大话存储2:存储系统架构与底层原理极限剖析》内容简介:网络存储是一个涉及计算机硬件以及网络协议/技术、操作系统以及专业软件
本书作者是北宋政治家、科学家苏颂对前代天文学成果进行了全面总结,在此基础上主持研制了一座全新的天文观测和报时的仪器“水运
《C++程序设计教程》是《C++程序设计教程》的第二版。然而从指导思想、内容结构、写作特点等方面,都以全新的面貌呈现于读者。全
Theultimateguidetothecellphone,theubiquitousandindispensablepocket-sizedgadgetth...
Asawebdesigner,youencountertoughchoiceswhenitcomestoweighingaestheticsandperform...
《李济平 邓定海传》内容简介:本书为雨花台烈士传丛书第四批之一,为李济、邓定海烈士的合传。李济于1927年加入中国,曾任扬州地委
《刚好遇见你》内容简介:本书从改编理论出发,囊括了影视改编理论、影视改编案例到改编实践理论,分三编,共十个章节。影视改编理