网站应用程序组成
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
|
|