node学习笔记(三)

//事件驱动events
//events是node最重要的模块没有之一,由于node.js自己的架构就是事件式的,而他提供了惟一的接口,因此堪称node.js事件编程的基石;
//events几乎被全部模块依赖

//事件发射器
//EventEmitter支持多个事件监听器,监听器会依次调用;

var emitter = require('events').EventEmitter;
var e = new emitter();

//为go事件增长2个监听器
e.on('go',function(obj,willDoing){
console.log(obj + ',will do ' + willDoing);
})

e.on('go',function(obj,isDoing){
console.log(obj + ',is doing ' +isDoing );
})

//发射
e.emit('go','smile','homework');    //smile,will do homework
//smile,is doing homework
//EventEmitter经常使用API

//为指定事件建立一个监听器,接受一个字符串event和一个回调函数listener;
e.on(event,listener);

//发射event事件,接受N个参数;
e.emit(event,[arg1],[arg2].....[argN]);

//为指定事件注册一个单词监听器,即监听器只会触发一次;
e.once(event,listener);

//移除指定事件的某个监听器,listener必须是注册过的监听器
e.removeListener(event,listener);

//移除全部事件的全部监听器,若是指定event则移除指定事件的全部监听器;
e.removeAllListeners([event]);


//error事件
//遇到异常的时候会发射error事件
e.emit('error');

//继承EventEmitter
//大多数时候,咱们不会直接使用EventEmitter,而是在对象中继承他,包括http,fs,net,只要支持事件响应的核心模块,都是EventEmitter的子类;


//文件系统fs
//fs模块是文件操做的封装,它提供了文件的读取,写入,改名,删除,遍历目录,连接等Posix操做
//fs模块和其余模块不一样所有提供了异步和同步操做

var fs = require('fs');

//fs.readFile();
//读取文件函数
//filename:文件名,encoding:编码,callback(err,data):err错误,data内容;
fs.readFile(filename,[encoding],[callback(err,data)]);

//读取文件函数(同步版)
//若有错误须要用try..catch来处理
//fs.readFileSync(filename,[encoding]);


//fs.open();
//Posix open函数的封装
//fs.open与c#中的fopen相似接受两个必选参数
//path:文件路径
//flags能够是如下值:
//{
r : 读取 模式打开文件;
r+ : 读写 模式打开文件;
w : 写入 模式打开文件, 没有 则建立
w+ : 读写 模式打开文件, 没有 则建立
a : 追加 模式打开文件, 没有 则建立
a+ : 读取追加 模式打开文件, 没有 则建立
//}
//mode参数用于建立文件时给文件指定权限,默认是0666.回调函数将会传递一个文件描述符fd
//文件权限指的是posix操做系统中对文件读取和访问权限的规范,一般用一个八进制数来表示
//例如:0754表示文件全部者的权限是7(读,写,执行),
//同组用户权限是5(读,执行),其余用户权限是4(读),写成字符表示就是-rwxr-xr--
//文件描述符是一个非负整数,表示操做系统内核为当前进程所维护的打开文件的记录表索引
fs.open(path,flags,[mode],[callback(err,fd)]);

 

//fs模块函数表
打开文件     fs.open(path,flags,[mode],callback(err,fd));
关闭文件     fs.close(fd,[callback(err)]);
读取文件内容    fs.readFile(filename,[encoding],[callback(err,data)]);
写入文件内容    fs.writeFile(filename,[encoding],[callback(err)]);
删除文件     fs.unlink(path,[callback(err)]);

 

 
 
相关文章
相关标签/搜索