//事件驱动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)]);

node学习笔记(三)的更多相关文章

  1. ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心

    作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  4. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  5. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  6. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  7. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  8. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

随机推荐

  1. RHEL7/CentOS7中更改网卡默认名称

    1.重命名并修改网卡配置文件,将"NAME"参数更为我们熟悉的“eth*”,这里我将其改为"eth0" [root@localhost ~]# cd /etc/ ...

  2. 关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法

    CREATE TABLE t_harry ( id int NOT NULL, ) DEFAULT NULL, ChannelID ) DEFAULT NULL, TimeStamp datetime ...

  3. LINUX退出当前进程——比较return、exit()

    1.在Linux中任何让一个进程退出 进程退出表示进程即将结束.在Linux中进程退出分为了正常退出和异常退出两种. 1>正常退出 a. 在main()函数中执行return . b.调用exi ...

  4. windows 下 gvim打开默认全屏显示

    在_vimrc文件中加入如下配置即可: autocmd GUIEnter * simalt ~x

  5. jQuery HTML 操作

    jQuery 包含很多供改变和操作 HTML 的强大函数. 改变 HTML 内容 语法 $(selector).html(content) html() 函数改变所匹配的 HTML 元素的内容(inn ...

  6. Android Studio开发基础之自定义View组件

    一般情况下,不直接使用View和ViewGroup类,而是使用使用其子类.例如要显示一张图片可以用View类的子类ImageView,开发自定义View组件可分为两个主要步骤: 一.创建一个继承自an ...

  7. C代码编译成可执行程序的过程

    C代码通过编译器编译成可执行代码,经历了四个阶段,依次为:预处理.编译.汇编.链接. 接下来详细讲解各个阶段 一.预处理 1.任务:进行宏定义展开.头文件展开.条件编译,不检查语法. 2.命令:gcc ...

  8. virtualbox 下windows与虚拟机实现文件共享---挂载

    1.创建挂载目录: mkdir /mnt/share 2.挂载:mount /dev/cdrom /mnt/share 3.cd /mnt/share 3.虚拟机-设备-分配光驱-VBoxGuestA ...

  9. MINA系列学习-IoBuffer

    在阅读IoBuffer源码之前,我们先看Mina对IoBuffer的描述:A byte buffer used by MINA applications. This is a replacement ...

  10. ArcMap中地图输出(Options)选项显示不完整

    首先,我开始遇到的时候,认为是高分辨屏幕的问题,所以修改了屏幕的分辨率,结果并没有改变. 然后,认为是对话窗口的显示,修改字体大小,也没有显示完整. 最后,是修改了ArcGIS的注册表才解决.解决方式 ...