一、node的事件处理
1、node采用的是事件驱动模式来进行事件处理的。只有当事件被触发时才执行相关程序
2、node是单线程运行的:采用事件轮询的方式,不断地查询事件队列中的消息,然后根据消息执行对应的回调函数
3、node事件机制中的三个角色
(1)事件(event):使用node的内置模块"events"
(2)事件发射器(EventEmitter):是一个类,使用时创建该类的对象,通过对象调用以下方法。
addListener(事件名,事件处理程序)与addeventListener本质上一样,注册事件监听
on(事件名,事件处理程序):注册事件监听
removeListener(event,listener):删除事件监听
emit(事件名):手动触发指定的事件
(3)事件监听器(eventListenter):
node事件注册、触发事件
二、node的全局对象
1、全局变量
(1)、__filename:代表的是正在运行的文件名,带绝对路径的文件名(绝对路径+文件名)
(2)、__dirname:表示当前正在执行的文件所在的目录。
2、全局对象
process对象:存放node的进程信息,可以放在程序的任何位置,也不需用require进行加载
程序:静态的代码
进程:运行中的程序
线程:是进程的一个小的单元
process对象的属性:
(1)stdout:返回一个对象,代表一个标准的输出。它下面的方法write,作用和console.log方法一样。
(2)stdin:返回的是一个对象,代表一个标准输入。
三、node的readline模块
1、是node中实现标准输入输出的模块,可以逐行的读取终端的数据,使用时必须通过require将该模块引入
2、使用方法:
(1)引入模块:require("readline")
(2)创建readline模块的实例,该实例的input属性值就是process.stdin,output属性值是process.stdout
(3)注册事件监听,完成输入输出操作。
3、readline模块的事件:
line --- 会在用户输入一行,按回车键后触发
四、node的web编程
1、web服务器:专门处理通过http协议发送的用户请求的应用程序,可以给用户返回相应的信息,这些信息可以是文本、图片、html文档等。
2、web应用程序的体系结构:
(1)Client端:手机浏览器、电脑浏览器、客户端的应用程序等。
(2)Server端:拦截客户端通过http协议发出的请求
(3)Business:运行在server上的程序
(4)Data:数据
3、url模块:用来处理与解析url地址,可以将字符串转化成url对象,也可以将url对象转换成字符串。
(1)使用方法:引入:require(‘url’)
(2)url对象的属性:
hostname:主机名
port:端口号。计算机端口号编号(0~65535之间,其中0-1023系统占用。1024-65535之间的端口号都可以使用,有些特殊的端口号不能使用)
80:浏览网页
3306:MySQL数据库使用
27017:MongoDB数据库使用
query:url地址中的参数(去掉search中的?)(通常是客户端采用get方式发送请求时,再请求地址中带的参数。)
search:客户端的请求数据。包含了分隔符‘?以及地址和参数。
protocol:网络协议
host:主机名和端口号
href:将字符串转换后的url地址
(3)url对象的三种方法:
a、parse(字符串,[false/true]):将给定的字符串解析成url对象返回。
参数字符串:表示要转换的对象
第二个参数:默认值时false。若为true,表示将url对象的query属性转换成对象格式。
4、node Web变成示例 ---- 采用B/S结构(浏览器(客户端)/服务器模式)
(1)创建html页面:login.html (包含form表单),通过表单发起请求。
(2)创建node的服务器端:node的http模块创建一个服务器(用来接收表单数据、并把表单的数据传回给前端)
(3)在服务器对编码信息进行处理
前端页面:
后端: