1.服务器端基础概念
1)网站的组成
网站应用程序主要分为两大部分:客户端和服务器端。
2)Node网站服务器
能够提供网站访问服务的机器就是网站服务器,它能够接收客户端的请求,能够对请求作出响应。
3)IP地址
IP(Internet Protocol Address)是互联网中设备的唯一标识,代表互联网协议地址。
4)域名
由于IP地址难记,就产生了域名。域名即上网所用的网址。虽然地址栏中输入的是网址,但最终还是会将域名转换为IP才能访问指定的网站服务器。
5)端口
端口是计算机与外界通讯交流的出口,区分服务器中提供的不同服务。
6)服务器端请求地址 URL
统一资源定位符,Uniform Resource Locator,是专为标识Internet网上资源位置设的一种编址方式,即我们常说的网址。
7)URL组成
传输协议://服务器IP或域名:端口/资源所在位置标识
http://www.baidu.com/news/20201130/0034829.html
2.创建网站服务器
步骤:
① require引用系统模块
② 使用 http.createServer() 创建web服务器
③ 使用 on 给网站服务器对象添加事件
*事件中有两个参数:一个事件名 用 ' request ' ;一个箭头函数:箭头函数中第一个参数为请求 ' req ' ,第二个参数为响应 ' res '。
*箭头函数调用 res 的 ' end ' 方法编码。
④ 使用 listen 添加监听端口(设3000)
⑤ 最后在PowerShell端口中使用 ' nodemon + 文件名 ' 运行代码,在浏览器输入网址:localhost:3000,即可查看。
图解:
3.同步异步
-
同步API:只有当前API执行完成后,才能继续执行下一个API
-
异步API:当前API的执行不会阻塞后续代码的执行
① 异步API需要通过回调函数获取结果 ② fs.readFile读取文件和事件处理函数都是要回调函数获取结果
1)promise
Promise出现的目的是解决Node.js异步编程中回调地狱的问题。
1、使用 new 构造promise的实例对象
2、promise函数有 resolve 和 reject 两个参数
3、实际上promise是在异步API外包裹着它们,并返回执行成功或失败的结果到外边
4、使用promise的 then 方法获取成功结果到外部
5、使用promise的 catch 方法获取失败结果到外部,允许链式使用
2)promise解决回调地狱问题
1、先看有几个异步API,有几个异步API就有几个promise实例对象
2、创建promise实例对象并放入对应异步API
3、把各promise放入新建的函数中,并将promise实例对象设置为 return 值
4、调用第一个函数,使用 then 方法输出并设置它的 return 值为下一个要执行的函数
5、使用链式 then 方法,即可按照此顺序执行多个异步API
3)es7新增异步函数
异步函数是异步编程语法的终极解决方案,它可以让我们将异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。
异步函数即:在普通函数前面加上 ' async ' 关键字
*await关键字
① 它只能出现在异步函数中
① await promise 可以暂停异步函数的执行 等待promise对象返回结果后再向下执 行
① 它还可以通过返回值方式拿到返回结果
① 它后面只能跟promise对象
*promisify方法
① promisify 方法在 util 模块中
① 它可以 对异步函数进行包装,使它返回一个promise对象,以支持promise语法
③ 异步函数中,使用 run 方法读取