A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小刀葛小伦 黑马粉丝团   /  2020-2-21 14:40  /  1064 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

网站应用程序组成

1. 客户端和服务器端
2. 网站服务器:能够接受客户端的请求,并且对请求作出响应
3. IP 地址区别不同服务器 IP---域名
4. 端口用来区别不同的服务 邮件,短信
5. url 统一资源定位符

创建 web 服务器

- 引用系统模块 http
- const app = http.createServer()
- app.on('resquest',(req, res)=>{...})

HTTP 协议

1. 请求方式
   - get 请求数据 //浏览器输入地址栏的方式属于 get 请求
   - post 发送数据 // form 表单 默认是 get
2. 请求响应
   - req.method // 请求方式
   - req.url // 获取请求地址
   - req.headers //获取请求头
3. 响应报文
   1. 状态码
   - 200 //请求成功
   - 404 //请求资源没有找到
   - 500 //服务器资源错误
   - 400 //客户端请求语法有错误
   2. 内容类型
      通过 res.writeHead(200,{'content-type':'text/html'})
   - text/html
   - text/plain
4. 请求参数
   1. get // 通过内置模块 url.parse(req.url,true) //得到对象
   2. post //form data querystring.parse(postParams)
5. 路由

- 根据访问路径不同响应不同内容

6. 静态资源
7. API

   - 同步 api 拿到返回值结果
   - 异步 api 不能拿到返回值结果 通过回调函数拿到返回值结果

     1. 读取文件操作
     2. 事件监听函数
     3. 回调地狱 解决===> promise
        - let promise = new Promise((reslove, reject) => {})
        - promise.then(正确处理结果).catch(错误处理结果) //支持链式编程
        - 异步函数 async 默认返回值是 promise 对象
        - async function fn() {
          throw '错误信息'; // throw 抛出错误信息
          return 123 }
        - fn().then(函数(正确)).catch(函数(错误))
        - await 可以暂停当前函数执行直到有结果返回
        - const promisify = require('util').promisify;
        - const readFile = promisify(fs.readFile); //改造现有异步 api

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马