目录
1、node采用的事件驱动模式来进行事件处理的:只有当事件被触发时才执行相关程序
采用事件轮询方式,不断的查询事件队列中的消息,然后根据消息执行对应的回调函数编辑
1、web服务器:专门处理通过http协议发送的用户请求的应用程序。
可以给用户返回信息,这些信息可以是文本、图片、html文档等
(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')