读《Node.js 权威指南》

来源:互联网 发布:mac 压感 编辑:程序博客网 时间:2024/04/30 04:21
陆凌牛 著
java , php 为每个客户连接创建一个新的线程 大约 2 MB 内存。
8 GB 内存大约支持 4000 个左右用户。
Node.js 改进这点为每个客户连接触发一个在 Node.js 内部进行处理的事件。可以处理几万个用户连接(这点才是使用的主要目的)
javascript 脚本是只支持单线程。不会死锁。
  • 非阻塞型 I/O
  • 事件环
非阻塞型 I/O:在访问数据库前后会有等待结果的时间,采用这种设计,在等待数据库结果的时,会立即执行后面的代码。
把数据库的返回结果的处理代码放在回调函数中执行。

事件环:
事件:客户端请求建立连接
接收客户端提交数据
停止客户端提交数据的接收
在 node.js 中一个时刻只能执行一个事件回调函数,但是在执行一个事件回调函数的中途可以转而处理其他事件,然后返回继续执行原事件回调函数。

适合开发:聊天服务,综合服务类网站,电子商务网站。
示例代码1:6 页
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<head><meta charset="utf-8"/></head>');
res.end('你好\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

REPL 交互式运行环境。
node 启动
.exit 退出

console.time(label) //标记时间的开始
console.timeEnd(label)
执行时间。

console.assert(1==22, 'raise an exception')

setTimeout
setInterval
clearInterval

timer.unref(); //取消 setTimeout 或 setInterval 指定的回调函数的调用。
require 加载模块
__filename 当前文件名
__dirname 当前目录名
EventEmitter 类,所有可能触发事件的对象,都继承此类的子类的实例。35 页

第4章,模块与 npm 包管理工具 56页
后缀为
.js 脚本文件
.json JSON 文本文件
.node 经过编译后的二进制模块文件
将模块定义为类
为模块定义类变量或类函数
使用目录管理模块

第5章,使用 bufer 类处理二进制数据
进行字符串的长度,缓存区的长度
buffer 对象与 字符串对象,数值对象, JSON 对象,相互转换。
复制缓存区数据(Buffer)
buffer 的类方法

第6 章,操作文件系统
同步,异步
读写整个文件内容,读取文件中部分内容,在指定位置写入内容
创建与读取目录
查看与修改文件或目录的一些信息。
对文件执行其他各种类型的操作
读写流数据的对象
ReadStream object and WriteStream object 快速读写文章
绝对路径,相对路径转换

第 7 章 TCP UDP 
创建 TCP 服务器
监听客户连接 socket 端口读取客户端发送的数据
创建 TCP 客户端连接 TCP 服务器的 socket 端口
从 UDP 服务器向客户端广播数据,从 UDP 服务器向客户端组播数据

第 8 章 创建 HTTP 与 HTTPS 服务器及客户端
创建 HTTP 服务器
使用 HTTP 服务器接收客户端请求数据
使用 HTTP 服务器向客户端返回响应数据
使用 node.js 制作 HTTP 客户端
使用 node.js 制作代理服务器
创建 HTTPS 服务器
创建 HTTPS 客户端

第 9 章 进程与子进程
child_process 模块,实现应用程序中开启多个子进程并在各个子进程中运行各种不同的命令或执行 node.js 模块文件。
cluster 模块,实现在应用程序中开启多个子进程,但只是一个运行 node.js 的副本。

process 对象及对象的属性及方法。
开启用于运行命令的子进程,开启模块子进程,开启可执行文件子进程。
开启应用程序的副本,及其对象 worker 的属性,方法,事件。

第 10 章,错误处理与断言处理
domain 模块捕获各种继承了 EventEmitter 类的实例对象或各种事件回调函数中触发的错误。可以更好的回收各种资源及内存。
使用 assert 各种方法进行断言处理。

第 11 章,加密与压缩
crypto 模块
散列算法
HMAC 算法
公钥加密

压缩解压
创建各种用于压缩及解压的对象
zlib 模块

第 12 章,其他模块
dns 模块 解析域名
resolve 将域名解析为 DNS 记录
使用 lookup 方法查询 IP 地址
reverse 方法反向解析 IP 地址
dns 模块各种错误代码
punycode 模块及其编码
os 模块取系统信息
readline 模块逐行读取流数据
util 模块实用方法
vm 模块改变脚本运行环境

第 13 章,数据库访问
MongoDB 存取
Mysql 数据库

第 14 章,Express 构建 web 应用程序

第 15 章,使用 Socket.IO 类库实现 WebSocket 通信

第 16 章,综合案例介绍

妻子的微店,卖铁皮石斛,红和黑糖等

0 0
原创粉丝点击