一,nodejs作用:
1. 解析和运行js脚本。
2. 搭建http服务。
二,nodejs定义:
1.nodejs是运行在服务器短的软件。
三,nodejs 特点
1.单线程。
2.异步非阻塞I/O
3.事件驱动
4.npm包管理工具
5.稳定性较差
四,适用场景
1.聊天室
2.单页应用
3.交流问答
4.工单
5.api
解释:
#1.单线程与多线程是什么?
(1).多线程
apache,nginx,iis
多线程就是:客户端每发送一个请求,apache就会创建一个进程去请求。
(2).单线程:
nodejs
客户端发送的所有请求统统交给同一个node服务端进程去执行。
两者的优缺点:
多线程:稳定性高,单兵作战能力弱。
单线程:稳定性低,单兵作战能力强(超人)。
#2.异步非阻塞IO
例子:
同步:php mysql_query("select * from stu where name='xx1' ")
异步:Ajax $.get("url",{},function(){});
alert("xx1");
I/O:数据的输入和数据的输出 I->Input O-> Output;
#3.事件驱动
(1).事件就是用户操作,当鼠标或键盘操作时,就会产生事件。
(2).事件驱动:用户操作的过程,效果事件的过程就叫做事件驱动。
#4.npm包管理工具
(1).npm:类似于linux下的yum,能够快速安装一些软件工具包。
(2).安装工具包:express 框架,Jquery,BootStrap,Mysql,Formidable(表单处理工具包)等。
NodeJs安装:
(1):windows安装:就是下一步 -> 下一步。
检测:程序管理,cmd->node -v (node版本号) npm -v (npm版本号)。
NodeJs使用
#1.url模块
(1)url模块:用于解析url链接。
(2)url 模块使用
<1> 导入url模块 var url = require('url');
<2> 解析url url.parse(url字符串,true); //true是返回json格式 例:{'name':'xx1'}。
#2.响应数据类型
node是用 (`)反引号解析html代码。
res.write(`<div>xx1</div>`);
JSON.stringify 把对象转换为json 原声字符串。
#3.文件系统模块
(1)可以读取静态资源 , css js html image。
(2)文件系统模块使用
<1> 导入模块 fs = require('fs');
<2> 读取静态资源 fs.readFile('静态资源文件路径',function(err,data){}); // err 是异常信息 data 读取的静态资源数据