一.与nodejs相关技术:
-Webkit、appjs、musicquiz、Jade、Ghost、Yamr、Grunt、Express.js、gulp、Nodecast
Log,io、Hyro、PDFKit、Haroopad、NoduinoWeb、Filsh、Forever、NodeOS、Imdex
二.Nodejs的版本:
偶数位为稳定版本:-0.6.x、-0.8.x、-0.10.x
奇数为非稳定版本:-0.7.x、-0.9.x、-0.11.x
三.Commonjs规范:
modules、packages、system、filesystems、binary、console、encodings、sockets、unit test …
不同于jQuery,Commonjs是一套规范,nodejs是对commonjs的实现
四.模块的分类:
1.核心模块:http、fs、path…
2.文件模块:var util = require("./util.js")
3.第三方模块: var promise = require(“bluebird”)
五.模块的流程:
1.创建模块: teacher.js
2.导出模块: exports.add = function() { }
3.加载模块: var teacher = require("./teacher.js")
4.使用模块: teacher.add(“Tom”)
六.URL和URI:
1.URL和URI:
(1)URL:统一资源定位符,是URI子集
(2)URI:统一资源标识符
(3)URL一定是URI,URI不一定是URL
2.URL模块三个方法:
(1)url.parse(“url”): 解析url
注意:parse后面可以由参数;url.parse(“url”,true/false,true/false)
第二个参数 true表示解析的query为对象;false表示query解析为字符串(默认)
第二个参数 true表示解析后的path和hostname不一样
(2)url.format(“url解析后的结果”) :生成url
(3)url.resolve(“url1”,“url2”): 生成合法url地址
七.QueryString参数处理小利器:
1.querystring.stringify({ },“分隔符自己设定”,“替代=的符号”):
将对象序列化为字符串
2.querystring.parse():
反序列化
3.querystring.escape(" "): 转义
4.querystring.unescape(" "): 反转义
八.HTTP模块:
1.支持更多特性
2.不缓冲请求和响应
3.处理流相关
九.一些概念:
1.回调:
function learn(something)
{
console.log(something);
}
function we(callback,something)
{
something += "is cool";
callback(something)
}
we(learn,"Nodejs"); //输出Nodejs is cool
we(function(something)
{
console.log(something)
},"jade") //输出jade is cool
2.同步和异步:同步即是按顺序执行
3.单线程和多线程
4.I/ O:磁盘的进和出
5.堵塞和非堵塞
6.事件和事件驱动
十.用call或apply可以实现继承:
function Pet(words){
this.woeds = words;
this.speak = function()
{
console.log(this.words)
}
}
function Dog(words){
Pet.call(this,words)
}
var dog = new Dog("wang");
dog.speak();
十一.事件模块:
代码示例:
var EventEmitter = require("events").EventEmitter;
var life = new EventEmitter();
//on等同于addEventListener
life.on("哈哈",function(who)
{ console.log('给'+ who+'倒水')
})
life.emit("哈哈",'汉子');
十二.request方法:
http - get/request
http.request(options[,callback])
十三.Promise:
1.针对异步采取的方案
2.三种状态:
未完成(pending)、已完成(fulfilled)、失败(rejected)
3.Promise then方法:
promiseOBJ.then(onFulfilled,onRejected)
onFulfilled = function(value){
return promiseObj2
}
onRejected = function(err){ }
4.Promise库:
bluebird、Q、then.js、es6-promise、ypromise、async、native-promise-only
十四.Net:
1.Buffer:
实例化
var buf=new Buffer("12345678");
var buf = new Buffer(8); buf.write("12345678");
TCP/图像/文件/网络
对数组的操作移到了buffer里面
Buffer实例方法:length、write、toString、copy、slice、compare、equals、fill
2.Stream流:
stream种类: Readable、Writable、Duplex、Transform