• 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)]);
    
     
    
     
     
  • 相关阅读:
    HDU 4389 X mod f(x)
    SRM 400(1-250pt, 1-500pt)
    FZU 2113 Jason的特殊爱好
    POJ 3208 Apocalypse Someday
    HDU 4734 F(x)
    HDU 3555 Bomb
    HDU 2089 不要62
    poj2488(A Knight's Journey)
    poj3267(The Cow Lexicon)
    poj2513(Colored Sticks)
  • 原文地址:https://www.cnblogs.com/SmileCN/p/3161668.html
Copyright © 2020-2023  润新知