Node.js项目实践:构建可扩展的Web应用
第1章 安装Node.js及相关要点 1
安装Node.js和NPM 1
一键安装 2
通过HomeBrew或MacPorts安装 3
通过tar文件安装 4
须sudo授权进行安装 4
通过Git Repo进行安装 5
通过Nave进行多版本安装 5
通过NVM进行多版本安装 6
其他的多版本系统 6
查看完整
安装Node.js和NPM 1
一键安装 2
通过HomeBrew或MacPorts安装 3
通过tar文件安装 4
须sudo授权进行安装 4
通过Git Repo进行安装 5
通过Nave进行多版本安装 5
通过NVM进行多版本安装 6
其他的多版本系统 6
查看完整
Azat Mardan ,在互联网、移动、软件开发方面有十多年的工作经验。他拥有信息学学士以及信息系统硕士学位,并且掌握和实践经验一样丰富的学术知识。最近,Azat 以团队领导/高级软件工程师的角色工作于DocuSign,他的团队采用全新技术 Node.js 栈、Express.js、
Backbone.js、CoffeeScript、Jade、Stylus 以及 Redis 重构了拥有 5000 万用户的产品(DocuSign 网络应用)。
之前,Azat 曾在 Storify.com(2013 被收购)、美国国家生物技术信息中心、联邦存款保险公司、洛克希德马丁以及其他公司任高级软件工程师。他在 Marakana 开源社区(2013 被收购)、pariSOMA、General Assembly San Francisco 以及Hack Reactor 上教编程,获得一致…
查看完整
Backbone.js、CoffeeScript、Jade、Stylus 以及 Redis 重构了拥有 5000 万用户的产品(DocuSign 网络应用)。
之前,Azat 曾在 Storify.com(2013 被收购)、美国国家生物技术信息中心、联邦存款保险公司、洛克希德马丁以及其他公司任高级软件工程师。他在 Marakana 开源社区(2013 被收购)、pariSOMA、General Assembly San Francisco 以及Hack Reactor 上教编程,获得一致…
查看完整
《Node.js项目实践:构建可扩展的Web应用》用专业的讲解方式,带领读者从“Hello World”示例开始,一步步将其构建成有实际用途的Node.js应用。《Node.js项目实践:构建可扩展的Web应用》涉及许多组件的使用,比如安全、部署上线、组织代码、数据库驱动和模板引擎等,从中可使读者接触到很多经过历年实践所得出的广受欢迎的模块库,它们可以大大提高开发人员的代码质量和开发效率。
第1章 安装Node.js及相关要点 1
安装Node.js和NPM 1
一键安装 2
通过HomeBrew或MacPorts安装 3
通过tar文件安装 4
须sudo授权进行安装 4
通过Git Repo进行安装 5
通过Nave进行多版本安装 5
通过NVM进行多版本安装 6
其他的多版本系统 6
检查安装 7
Node.js控制台(REPL) 7
加载Node.js脚本 9
Node.js的基础和语法 9
弱类型 9
Buffer――Node.js特殊数据类型 10
对象字面量 10
函数 11
数组 12
原型特性 12
编码规范 13
Node.js的全局变量和保留字 14
__dirname与process.cwd的对比 17
浏览器API输助工具 17
Node.js的核心模块 18
便捷的Node.js工具 20
在Node.js中读写文件 20
Node.js中的数据流 21
使用NPM安装Node.js模块 21
优化Node.js中的回调函数 22
使用Node.js的HTTP模块来创建一个简单服务器 23
调试Node.js程序 24
核心Node.js调试 24
使用Node Inspector来调试 25
Node.js集成开发环境和代码编辑器 28
监听文件变化 30
小结 31
第2章 使用Express.js 4创建Node.js的Web应用程序 32
什么是Express.js 32
Express.js是如何工作的 35
Express.js的安装 36
Express.js的版本 36
Express.js生成器 37
本地Express.js 38
Express.js脚手架 40
Express.js命令行界面 41
Express.js中的路由 43
Express.js的核心――中间件 44
一个Express.js应用的配置 45
Jade就是Express.js/Node.js的Haml 45
脚手架总结 45
博客项目概述 46
提交数据 47
Express.js 4中的Hello World例子 48
创建文件夹 49
NPM初始化和package.json 50
依赖声明:npm install 50
app.js文件 51
Jade模板 55
运行Hello World应用 56
小结 56
第3章 Node.js基于Mocha的测试驱动开发和行为驱动开发 57
安装与理解Mocha 58
理解Mocha的hook机制 60
用assert进行TDD 61
断言库Chai 63
用expect.js进行BDD 64
Expect.js的语法 65
项目:为博客开发一个BDD测试 65
将配置参数写入Makefile 68
小结 69
第4章 模板引擎:Jade和Handlebars 70
Jade的语法和特性 70
标签 71
变量/数据 71
属性 72
字面量 73
文本 73
Script 和 Style块 74
JavaScript代码 74
注释 75
if语句 75
each语句 75
过滤器 76
读取变量 76
case 76
函数mixin 77
include 78
extend 78
单独使用Jade 79
Handlebars的语法 83
变量 83
each语句 83
非转义输出 84
if语句 85
unless 85
with 86
注释 87
自定义 Helpers 87
Include 88
单独使用Handlebars 88
Express.js 4中Jade和Handlebars的用法 91
Jade 和 Express.js 92
Handlebars和Express.js 92
项目:给博客添加Jade模板 93
layout.jade 94
index.jade 96
article.jade 97
login.jade 98
post.jade 99
admin.jade 100
小结 101
第5章 MongoDB、Mongoskin特性 102
简单且正确地安装MongoDB 103
如何运行Mongo服务 104
用控制台操作Mongo 105
MongoDB Shell命令介绍 106
Node.js版原生MongoDB驱动示例 107
Mongoskin的主要方法介绍 111
项目:用Mongoskin把博客数据存储到MongoDB 112
项目:在MongoDB中添加seed数据 112
项目:Mocha测试 113
项目:添加持久连接 115
运行App 126
小结 127
第6章 在Node.js应用中使用session和OAuth进行用户认证和授权 128
使用Express.js中间件权限管理 128
基于token的用户认证 129
基于session的用户认证 130
项目实践:为博客增加邮箱和密码登录功能 132
session中间件 132
博客中的权限管理 133
博客中的用户授权 136
运行应用 138
Node.js OAuth 138
使用Node.js OAuth实现Twitter OAuth 2.0的示例 139
Everyauth 140
项目实践:为博客增加Twitter OAuth 1.0第三方登录(使用Everyauth实现) 141
添加“使用Twitter账户登录”链接 142
配置EveryauthTwitter模块 142
小结 148
第7章 使用ORM类库Mongoose提升你的Node.js数据 149
安装Mongoose 150
用独立的Mongoose 脚本建立数据库连接 150
Mongoose的原型 152
使用钩子保持代码的逻辑清晰 154
自定义静态方法和实例方法 155
Mongoose 模型 155
使用population建立关系和连接 158
嵌套的文档 160
虚拟字段 161
修改原型的行为 162
Express.js + Mongoose =真正的MVC 164
小结 175
第8章 使用Express.js和Hapi构建Node.js REST API服务 176
RESTful API基础 177
项目依赖 179
使用Mocha和Superagent进行测试 180
使用Express和Mongoskin实现REST API服务器 185
重构:使用Hapi搭建REST API服务器 192
小结 199
第9章 WebSocket、Socket.IO和DerbyJS的实时应用程序 200
什么是WebSocket 200
用ws模块的例子介绍本地WebSocket和Node.js 201
浏览器WebSocket的实现 201
用ws模块实现Node.js服务器 202
Socket.IO和Express.js的例子 204
用DerbyJS、Express.js和MongoDB搭建一个在线协作的代码编辑器例子 209
项目依赖和package.json 210
服务器端代码 211
DerbyJS应用程序 213
DerbyJS视图 215
编辑器Tryout 217
小结 218
第10章 为Node.js应用上线做准备 219
环境变量 219
生产环境下的Express.js 220
生产环境下的Socket.IO 222
错误处理 223
错误处理工具Node.js domains 225
使用Cluster处理多线程 229
使用Cluster2处理多线程 232
事件日志和监控 233
监控 233
生产环境下的REPL 235
Winston 236
使用Papertrail应用来管理日志 237
使用Grunt处理任务 237
使用Git来做版本控制和发布代码 241
安装Git 242
生成SSH密钥 242
创建本地Git仓库 245
将本地仓库推送到GitHub 245
在云上使用TravisCI运行测试用例 246
TravisCI配置 247
小结 248
第11章 部署Node.js应用 249
部署到Heroku 249
部署到Amazon网络服务 255
使用forever、Upstart和init.d保持Node.js持续运行 259
forever 259
Upstart脚本 260
init.d 262
尽可能使用Nginx提供静态资源 264
使用Varnish缓存 266
小结 268
第12章 Node.js模块发布和参与开源 269
推荐的目录结构 270
所需模式 270
package.json 273
发布到NPM 274
锁定版本 274
小结 275
结束语 275
进阶阅读 276
勘误和联系方式 276
^ 收 起
安装Node.js和NPM 1
一键安装 2
通过HomeBrew或MacPorts安装 3
通过tar文件安装 4
须sudo授权进行安装 4
通过Git Repo进行安装 5
通过Nave进行多版本安装 5
通过NVM进行多版本安装 6
其他的多版本系统 6
检查安装 7
Node.js控制台(REPL) 7
加载Node.js脚本 9
Node.js的基础和语法 9
弱类型 9
Buffer――Node.js特殊数据类型 10
对象字面量 10
函数 11
数组 12
原型特性 12
编码规范 13
Node.js的全局变量和保留字 14
__dirname与process.cwd的对比 17
浏览器API输助工具 17
Node.js的核心模块 18
便捷的Node.js工具 20
在Node.js中读写文件 20
Node.js中的数据流 21
使用NPM安装Node.js模块 21
优化Node.js中的回调函数 22
使用Node.js的HTTP模块来创建一个简单服务器 23
调试Node.js程序 24
核心Node.js调试 24
使用Node Inspector来调试 25
Node.js集成开发环境和代码编辑器 28
监听文件变化 30
小结 31
第2章 使用Express.js 4创建Node.js的Web应用程序 32
什么是Express.js 32
Express.js是如何工作的 35
Express.js的安装 36
Express.js的版本 36
Express.js生成器 37
本地Express.js 38
Express.js脚手架 40
Express.js命令行界面 41
Express.js中的路由 43
Express.js的核心――中间件 44
一个Express.js应用的配置 45
Jade就是Express.js/Node.js的Haml 45
脚手架总结 45
博客项目概述 46
提交数据 47
Express.js 4中的Hello World例子 48
创建文件夹 49
NPM初始化和package.json 50
依赖声明:npm install 50
app.js文件 51
Jade模板 55
运行Hello World应用 56
小结 56
第3章 Node.js基于Mocha的测试驱动开发和行为驱动开发 57
安装与理解Mocha 58
理解Mocha的hook机制 60
用assert进行TDD 61
断言库Chai 63
用expect.js进行BDD 64
Expect.js的语法 65
项目:为博客开发一个BDD测试 65
将配置参数写入Makefile 68
小结 69
第4章 模板引擎:Jade和Handlebars 70
Jade的语法和特性 70
标签 71
变量/数据 71
属性 72
字面量 73
文本 73
Script 和 Style块 74
JavaScript代码 74
注释 75
if语句 75
each语句 75
过滤器 76
读取变量 76
case 76
函数mixin 77
include 78
extend 78
单独使用Jade 79
Handlebars的语法 83
变量 83
each语句 83
非转义输出 84
if语句 85
unless 85
with 86
注释 87
自定义 Helpers 87
Include 88
单独使用Handlebars 88
Express.js 4中Jade和Handlebars的用法 91
Jade 和 Express.js 92
Handlebars和Express.js 92
项目:给博客添加Jade模板 93
layout.jade 94
index.jade 96
article.jade 97
login.jade 98
post.jade 99
admin.jade 100
小结 101
第5章 MongoDB、Mongoskin特性 102
简单且正确地安装MongoDB 103
如何运行Mongo服务 104
用控制台操作Mongo 105
MongoDB Shell命令介绍 106
Node.js版原生MongoDB驱动示例 107
Mongoskin的主要方法介绍 111
项目:用Mongoskin把博客数据存储到MongoDB 112
项目:在MongoDB中添加seed数据 112
项目:Mocha测试 113
项目:添加持久连接 115
运行App 126
小结 127
第6章 在Node.js应用中使用session和OAuth进行用户认证和授权 128
使用Express.js中间件权限管理 128
基于token的用户认证 129
基于session的用户认证 130
项目实践:为博客增加邮箱和密码登录功能 132
session中间件 132
博客中的权限管理 133
博客中的用户授权 136
运行应用 138
Node.js OAuth 138
使用Node.js OAuth实现Twitter OAuth 2.0的示例 139
Everyauth 140
项目实践:为博客增加Twitter OAuth 1.0第三方登录(使用Everyauth实现) 141
添加“使用Twitter账户登录”链接 142
配置EveryauthTwitter模块 142
小结 148
第7章 使用ORM类库Mongoose提升你的Node.js数据 149
安装Mongoose 150
用独立的Mongoose 脚本建立数据库连接 150
Mongoose的原型 152
使用钩子保持代码的逻辑清晰 154
自定义静态方法和实例方法 155
Mongoose 模型 155
使用population建立关系和连接 158
嵌套的文档 160
虚拟字段 161
修改原型的行为 162
Express.js + Mongoose =真正的MVC 164
小结 175
第8章 使用Express.js和Hapi构建Node.js REST API服务 176
RESTful API基础 177
项目依赖 179
使用Mocha和Superagent进行测试 180
使用Express和Mongoskin实现REST API服务器 185
重构:使用Hapi搭建REST API服务器 192
小结 199
第9章 WebSocket、Socket.IO和DerbyJS的实时应用程序 200
什么是WebSocket 200
用ws模块的例子介绍本地WebSocket和Node.js 201
浏览器WebSocket的实现 201
用ws模块实现Node.js服务器 202
Socket.IO和Express.js的例子 204
用DerbyJS、Express.js和MongoDB搭建一个在线协作的代码编辑器例子 209
项目依赖和package.json 210
服务器端代码 211
DerbyJS应用程序 213
DerbyJS视图 215
编辑器Tryout 217
小结 218
第10章 为Node.js应用上线做准备 219
环境变量 219
生产环境下的Express.js 220
生产环境下的Socket.IO 222
错误处理 223
错误处理工具Node.js domains 225
使用Cluster处理多线程 229
使用Cluster2处理多线程 232
事件日志和监控 233
监控 233
生产环境下的REPL 235
Winston 236
使用Papertrail应用来管理日志 237
使用Grunt处理任务 237
使用Git来做版本控制和发布代码 241
安装Git 242
生成SSH密钥 242
创建本地Git仓库 245
将本地仓库推送到GitHub 245
在云上使用TravisCI运行测试用例 246
TravisCI配置 247
小结 248
第11章 部署Node.js应用 249
部署到Heroku 249
部署到Amazon网络服务 255
使用forever、Upstart和init.d保持Node.js持续运行 259
forever 259
Upstart脚本 260
init.d 262
尽可能使用Nginx提供静态资源 264
使用Varnish缓存 266
小结 268
第12章 Node.js模块发布和参与开源 269
推荐的目录结构 270
所需模式 270
package.json 273
发布到NPM 274
锁定版本 274
小结 275
结束语 275
进阶阅读 276
勘误和联系方式 276
^ 收 起
Azat Mardan ,在互联网、移动、软件开发方面有十多年的工作经验。他拥有信息学学士以及信息系统硕士学位,并且掌握和实践经验一样丰富的学术知识。最近,Azat 以团队领导/高级软件工程师的角色工作于DocuSign,他的团队采用全新技术 Node.js 栈、Express.js、
Backbone.js、CoffeeScript、Jade、Stylus 以及 Redis 重构了拥有 5000 万用户的产品(DocuSign 网络应用)。
之前,Azat 曾在 Storify.com(2013 被收购)、美国国家生物技术信息中心、联邦存款保险公司、洛克希德马丁以及其他公司任高级软件工程师。他在 Marakana 开源社区(2013 被收购)、pariSOMA、General Assembly San Francisco 以及Hack Reactor 上教编程,获得一致好评。Azat 会利用业余时间在他的博客 webapplog.com 上写技术文章。
Azat 是开源 Node.js 项目:ExpressWorks、mongoui、HackHall 和 NodeFramework.com的创建者,同时,也是 Express、OAuth、jade-browser 以及其他 NPM 模块的贡献者。
^ 收 起
Backbone.js、CoffeeScript、Jade、Stylus 以及 Redis 重构了拥有 5000 万用户的产品(DocuSign 网络应用)。
之前,Azat 曾在 Storify.com(2013 被收购)、美国国家生物技术信息中心、联邦存款保险公司、洛克希德马丁以及其他公司任高级软件工程师。他在 Marakana 开源社区(2013 被收购)、pariSOMA、General Assembly San Francisco 以及Hack Reactor 上教编程,获得一致好评。Azat 会利用业余时间在他的博客 webapplog.com 上写技术文章。
Azat 是开源 Node.js 项目:ExpressWorks、mongoui、HackHall 和 NodeFramework.com的创建者,同时,也是 Express、OAuth、jade-browser 以及其他 NPM 模块的贡献者。
^ 收 起
《Node.js项目实践:构建可扩展的Web应用》用专业的讲解方式,带领读者从“Hello World”示例开始,一步步将其构建成有实际用途的Node.js应用。《Node.js项目实践:构建可扩展的Web应用》涉及许多组件的使用,比如安全、部署上线、组织代码、数据库驱动和模板引擎等,从中可使读者接触到很多经过历年实践所得出的广受欢迎的模块库,它们可以大大提高开发人员的代码质量和开发效率。
比价列表