Node学习总结

一、Node概述
node就是运行在服务器端的javascript,并且是一个事件驱动I/O服务器js环境

二、REPL环境
REPL表示的就是一个电脑环境,可以在终端输入命令,并接受系统的响应。
即可以在REPL环境运行js代码。

三、回调函数
node异步编程直接体现就是回调。node所有api都支持回调函数。我们可以一边读取文件。一边执行其他命令,在文件读取完成之后,将文件内容作为回调函数的参数返回。
例如:读取txt文件
//同步读取文件内容
var fs = require(‘fs’);
var data = fs.readFileSync(‘test.txt’);
console.log(‘done’);
//以下是异步读取文件内容
var fs = require(‘fs’);
var data = fs.readFile(‘test.txt’,function(err, data){
if(err) return console.log(err);
console.log(data.toString());
})
console.log(‘done’);

四、事件循环
node是事件驱动程序模型,当webserver接受到请求。就将它关闭然后进行处理,让后去服务下个web请求,当这个请求完成,它被放回处理队列,到达队列开头,把结果返回给用户。
var events = require(‘events’);
var eventEmitter = new events.EventEmitter();
eventEmitter.on(‘connect’,handler);
eventEmitter.emit(‘connect’,handler);

五、buffer V8 堆内存之外的一块原始内存
buf = new Buffer(256); //创建字节256位的buffer实例
len = buf.write(“www.runoob.com”); //写入缓冲区
console.log(“写入字节数 : “+ len);
console.log(buf.toString(‘ascii’,0,5));

六、stream流
http服务器发起请求的request对象就是一个stream流,还有stdout标准输出
从流中读取数据
var fs = require(‘fs’);
var data = ”;
var readerStream = fs.createReaderStream(‘test.txt’);
readerStream.setEncoding(‘UTF8’);
readerStream.on(‘data’,function(){
data += chunk;
})
readerStream.on(‘end’,function(){
console.log(data);
})
console.log(‘done’);
写入流数据
var fs = require(‘fs’);
var data = ‘baidu’;
var writerStream = fs.createWriteStream(‘test.txt’);
writerStream.write(data,’UTF8’);
writerStream.end();
writerStream.on(‘finish’,function(){
console.log(‘finish’);
});
writerStream.on(‘error’,function(){
console.log(‘err’);
})

管道流
var fs = require(‘fs’);
var readerStream = fs.createReaderSteam(‘test.txt’);
var writerStream = fs.createWriteStream(‘out.txt’);
readerStream.pipe(writerStream);
console.log(‘done’);

链式流
var fs = require(‘fs’);
var zlib = require(‘zlib’);
fs.createReadStream(‘test.txt’)
.pipe(zlib.createGzip())
.pipe(fs.createWriterStream(‘input.txt.gz’))

console.log(‘compress done’);

你可能感兴趣的:(node,node学习总结)