Nodejs相关知识

一.与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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值