- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境搭建
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTFul API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 从表中选择数据
- Node.js - MySQL 使用 Where 条件
- Node.js - MySQL 使用 Order By 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 联接
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制结果数量
- Node.js - MongoDB 联接
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - 事件
当 JavaScript 用于 HTML 脚本内部时,它通常处理用户生成的事件,例如按钮按下或鼠标点击。Node.js 的核心 API 是一个异步事件驱动的架构。但是,与客户端 JavaScript 不同,它处理服务器上的事件,例如文件 IO 操作、服务器的请求和响应等。
net.Server 对象在每次对等方连接到它时都会发出一个事件。
引用文件的 ReadStream 在文件打开时以及每当有数据可供读取时都会发出一个事件。
Node.js 识别多种类型的事件。每个事件都可以附加一个回调函数。每当发生事件时,附加到它的回调就会被触发。Node.js 运行时始终在侦听可能发生的事件。当发生任何它可以识别的事件时,就会执行其附加的回调函数。
Node.js API 包括 events 模块,主要包含 EventEmitter 类。EventEmitter 对象触发(或发出)某种类型的事件。您可以为某种类型的事件分配一个或多个回调(侦听器)。每当该事件触发时,所有注册的回调都会按其注册顺序依次触发。
以下是 Node.js API 中事件处理涉及的步骤。
首先,导入 events 模块,并声明一个 EventEmitter 类的对象
// Import events module var events = require('events'); // Create an eventEmitter object var eventEmitter = new events.EventEmitter();
使用以下语法将事件处理程序绑定到事件:
// Bind event and event handler as follows eventEmitter.on('eventName', eventHandler);
以编程方式触发事件:
// Fire an event eventEmitter.emit('eventName');
示例
下面是一个简单的示例,它将两个侦听器绑定到 EventEmitter 类的 on 事件
// Import events module var events = require('events'); // Create an eventEmitter object var eventEmitter = new events.EventEmitter(); // Create an event handler as follows var connectHandler = function connected() { console.log('connection successful.'); } // Bind the connection event with the handler eventEmitter.on('connection', connectHandler); // Bind the data_received event with the anonymous function eventEmitter.on('data_received', function(){ console.log('data received successfully.'); }); // Fire the connection event eventEmitter.emit('connection'); // Fire the data_received event eventEmitter.emit('data_received'); console.log("Program Ended.");
输出
connection successful. data received successfully. Program Ended.
Node 应用程序中的任何异步函数都将回调作为最后一个参数接受。回调函数将错误作为第一个参数接受。
创建一个名为 input.txt 的文本文件,内容如下。
Tutorials Point is giving self learning content to teach the world in simple and easy way!!!!!
创建一个名为 main.js 的 js 文件,包含以下代码:
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) { console.log(err.stack); return; } console.log(data.toString()); }); console.log("Program Ended");
这里 fs.readFile() 是一个异步函数,用于读取文件。如果在读取操作期间发生错误,则 err 对象将包含相应的错误,否则 data 将包含文件的内容。readFile 在读取操作完成后将 err 和 data 传递给回调函数,最终打印内容。
Program Ended Tutorials Point is giving self learning content to teach the world in simple and easy way!!!!!