Node的事件处理与node的全局变量,以及基于node的web编程模式

本文详细介绍了Node.js的事件处理机制,包括事件驱动模式、事件轮询和事件角色。此外,还探讨了Node.js的全局变量,如__filename和__dirname,以及全局对象process。同时,讲解了readline模块的使用,并阐述了Node.js在Web编程中的应用,如创建web服务器、处理HTTP请求以及URL模块的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、node的事件处理

1、node采用的事件驱动模式来进行事件处理的:只有当事件被触发时才执行相关程序

2、node是单线程运行的:

采用事件轮询方式,不断的查询事件队列中的消息,然后根据消息执行对应的回调函数​编辑

3、node事件机制中的三个角色

二、node的全局对象

1、全局变量

2、全局对象

三、node的readline模块

四、node的Web编程。

1、web服务器:专门处理通过http协议发送的用户请求的应用程序。

                        可以给用户返回信息,这些信息可以是文本、图片、html文档等

2、web应用程序的体系结构(CS解构与BS解构):

3、url模块:用来处理和解析url地址

示例:前后端交互

​ (1)前端:login.html (包含form表单)

​ (2)后端:node的http模块创建一个服务器(接收表单数据、并把表单的数据传回给前端)


一、node的事件处理

1、node采用的事件驱动模式来进行事件处理的:只有当事件被触发时才执行相关程序

2、node是单线程运行的:

采用事件轮询方式,不断的查询事件队列中的消息,然后根据消息执行对应的回调函数

3、node事件机制中的三个角色

(1)事件(Event):使用node的内置模块’events’

​ (2)事件发射器(EventEmitter):是一个类。使用时创建该类的对象,通过对象调用以下的方法

​                 addListener(事件名,事件处理程序):注册事件监听

                ​ on(事件名,事件处理程序):注册事件监听

​                 removeListener(event, listener):删除事件监听

                ​ emit(事件名):手动触发指定的事件

​ (3)事件监听器(EventListener):

//1.导入events模块
const events = require('events')
//2.创建EventEmitter类的对象
const eventEmitter = new events.EventEmitter()
//3.注册事件
eventEmitter.on('woniu',function(){  //‘woniu’是自定义的事件名
    console.log('疫情严重,注意防控')
})
//4.手动触发‘woniu’事件
eventEmitter.emit('woniu')
//导入http模块
const http = require('http')







/*----------------------------------------------------------------------------*/
//1.创建server
const server = http.createServer()
/*
   2.给服务器绑定(注册)事件:request  -- 请求事件(处理客户端的请求)
       req:请求对象。服务器通过该对象获取客户端的请求信息
       res:响应对象。服务器通过该对象向客户端发送信息
*/

 //req:表示请求对象(存放了客户端的请求信息);res:表示响应对象(用于服务器向客户端发送响应信息)
server.on('request',(req,res)=>{
    let info = req.url //req.url:客户端的url
    info = info.substring(2,info.length)
    let tmp = info.split('=')
    res.end(`Hello,${tmp[1]}`) //服务器向客户端发送字符串:'hello,World!'
})
//3.启动监听:指定服务器地址、端口号
server.listen(8089,'127.0.0.1')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值