Nodejs缓冲区

							   Nodejs缓冲区

一、	JSON转换成JavaScript对象
JSON.parse(string):将格式正确的JSON字符串转换为一个JavaScript对象
二、	把JavaScript对象转化为JSON
JSON.stringify(object):解析一个JavaScript对象,并生成JSON字符串。
转换实例:
var http = require("http");
http.createServer(function(request,response){
	response.writeHead(200,{"Content-Type":"text/html;charset = utf-8"});
	if(request.url !== "/favicon.ico")
	{
		
		//json对象转化成JavaScript
		var studentStr =  '{"name":"zhangsan","subjects":["math","english","computer"]}';
		var studentObj = JSON.parse(studentStr);
		console.log("json对象转化成JavaScript!!!!!!!!!!!!!!!!!!!!!!!")
		console.log(studentObj);
		
		 
		console.log("JavaScript对象转化成json!!!!!!!!!!!!!!!!!!!!!!!")
		//JavaScript对象转化成json
		 var studentObj = {
		 	name:"zhangsan",
		 	subjects:["math","english","computer"]
		 }
		 var studentStr = JSON.stringify(studentObj);
		console.log(studentStr);
		 //response.write(studentStr);
		console.log("!!!!!!!!!!!!!!!!!!!!!!!")
		response.end();
	}
}).listen(8000);
console.log("start running......");
 
<img src="https://img-blog.youkuaiyun.com/20160914234021703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

三、	缓冲区
(1)创建缓冲区:
1.	new Buffer(size)
2.	new Buffer(octetArray)
3.	new buffer(String,[encoding])
(2)写入缓冲区
1. buffer.write(string,[offset],[length],[encoding]):使用encoding编码从缓冲区内的offset索引开始,写入string中的length数量的字节。
2. buffer.fill(value,[offset],[end]):将value写到缓冲区中从offset索引处开始,并在end索引处结束的每一个字节
3.buffer[pffset] = value:将索引处的数据替换为指定值value
(3)从缓冲区读取
1.buffer.toString([encoding],[offset],[end]): 使用encoding编码读取从缓冲区内的offset索引开始,到end结束的字符。
2.buffer[offset]:返回缓冲区在指定的offset字节的八进制值。
(4)复制缓冲区
1.copy(targetBuffer,[targetStart],[sourceStart],[sourceIndex]): targetBuffer是另一个Buffer对象,[targetStart],[sourceStart],[sourceIndex]是源和目标缓冲区内的索引。
2.sourceBuffer[index] = targetBuffer[index] :通过索引直接将一个缓冲区的数据复制到另一个缓冲区。
(5).对缓冲区切片
slice([start],[end]):返回一个Buffer对象,其指向源缓冲区的start索引,具有end-start的长度。
(6).拼接缓冲区
concat(list,[totalLength]):按照出现在列表中的顺序拼接,新的Buffer对象被返回,包含至多totalLength字节的原始缓冲区的内容。

缓冲区实例:
var http = require("http");
var StringDecoder = require("string_decoder").StringDecoder;
http.createServer(function(request,response){
	response.writeHead(200,{"Content-Type":"text/html;charset = utf-8"});
	if(request.url !== "/favicon.ico")
	{
		//创建一个buffer
		var buffer = new Buffer(20);
		//缓冲区的内容写入1
		buffer.fill("1");
		//读取buffer
		console.log("用fill()写入内容的buffer是:"+buffer.toString());
		console.log("-----------------------------------------------------------");
		//写入buffer
		buffer.write("22");
		console.log("用write('22')写入内容后的buffer是:"+buffer.toString());
		console.log("-----------------------------------------------------------");
		 
		//复制buffer
		var buff = new Buffer(20);
		buffer.copy(buff);
		console.log("buffer复制给buff,buff的内容是:"+buff);
		console.log("-----------------------------------------------------------");
		
		//buffer切片
		var slice = buffer.slice(0,10);
		console.log("对buffer切片后,slice的内容是:"+slice);
		console.log("-----------------------------------------------------------");
		//改变slice
		slice[0] = "2";
		console.log(slice);
		console.log("slice索引为0改变后,slice的内容是:"+slice);
		console.log("-----------------------------------------------------------");
		console.log(buffer);
		console.log("slice索引为0改变后,buffer的内容是:"+slice);
		console.log("-----------------------------------------------------------");
		

		//buffer拼接
		var bu = new Buffer("ibelieveican");
		var bu2 = new Buffer("xcxvfhjyuku");
		console.log("buffer,bu,bu2三个拼接后:");
		console.log(Buffer.concat([buffer,bu,bu2]).toString());
		console.log("-----------------------------------------------------------");
		response.end();
	}
}).listen(8000);
console.log("start running......");

 
<img src="https://img-blog.youkuaiyun.com/20160914234027188?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值