Nodejs学习笔记.docVIP

  • 4
  • 0
  • 约2.8千字
  • 约 5页
  • 2017-02-08 发布于重庆
  • 举报
Nodejs学习笔记

异步式IO(非阻塞 I/O)与事件驱动 当线程遇到 I/O 操作时,不会以阻塞的方式等待 I/O 操作 的完成或数据的 返回,而只是将 I/O 请求发送给操作系统,继续执行下一条语句。当操作 系 统完成 I/O 操作时,以事件的形式通知执行 I/O 操作的线程,线程会在特 定时候处理这个 事件。为了处理异步 I/O,线程必须有事件循环,不断地检 查有没有未处理的事件,依次予 以处理。 Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。在开 事件由 EventEmitter 对象提供。前面提到的 fs.readFile 和 http.createServer 的回 调函数都是通过 EventEmitter 来实现的。下面我们用 一个简单的例子说明 EventEmitter 的用法: //event.js var EventEmitter = require(events).EventEmitter; var event = new EventEmitter(); event.on(some_event, function() { console.log(some_event occured.); }); setTimeout(function() { event.emit(some_event); }, 1000); 运行这段代码,1秒后控制台输出了 some_event occured.。其原理是 event 对 象 注册了事件 some_event 的一个监听器,然后我们通过 setTimeout 在 1000毫秒以后向 event 对象发送事件 some_event,此时会调用 some_event 的监听器。 Node.js与Windows的兼容性仍然不如 POSIX 操作系统,这一点在 npm 提供的第三方模块中体现得尤为突出。这主要是因为许多第三方的模块需 要编译原生的 C/C++ 代码,其中编译框架和系统调用很多都是以 Linux 为 范本的,与 Windows 不兼容。 使用 node 的 REPL 模式 REPL (Read-eval-print loop),即输入—求值—输出循环。 运行无参数的 node 将会启动一个 JavaScript 的交互式 shell Node.js 将“HTTP服务器”这一层抽离,直接面向浏览器用户 global--全局对象与全局变量 全局变量--process、console 常用工具--util Util.inherits()继承 Util.inspect()以字符串的形式输出 Events事件 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就 是事件发射与事件监听器功能的封装。EventEmitter 的每个事件由一个事件 名和若干个参 数组成,事件名是一个字符串,通常表达一定的语义。对于 每个事件,EventEmitter 支持 若干个事件监听器。当事件发射时,注册到这 个事件的事件监听器被依次调用,事件参数作 为回调函数参数传递。 注册事件--EventEmitterInstance.on(事件名,回调函数); 发射事件--EventEmitterInstance.emit(事件名,返回参数); 常用的事件方法如下: 8.1 EventEmitter.on(event, listener) 为指定事件注册一个监听器,接受一个字 符串 event 和一个回调函数 listener 8.2 EventEmitter.emit(event, [arg1], [arg2], [...]) 发射 event 事件,传递若干 可选参数到事件监听器的参数表 8.3 EventEmitter.once(event, listener) 为指定事件注册一个单次监听器,即 监 听器最多只会触发一次,触发后立刻解除该监听器 8.4 EventEmitter.removeListener(event, listener) 移除指定事件的某个监听 器,listener 必须是该事件已经注册过的监听器 8.5 EventEmitter.removeAllListeners([event]) 移除所有事件的所有监听器, 如果指定 event,则移除指定事件的所有监听器 events里面的error事件 文件系统--fs 10.1 fs.readFile(filename,[encoding],[callback(err,data)])是最简单的读取 文件 的函数。它接受一个必选参数 filename,表示要读取的文件名。第二个参数

文档评论(0)

1亿VIP精品文档

相关文档