网络通讯概述
网络通信三大要素: 协议,域名(IP),端口号
通过ip找到计算机,再通过端口找到应用程序,符合规则就可进行数据传输。 传输协议:规定数据传输的规则,http或https或file;前端目前只接触这三项。 网络通讯的格式; 请求报文/响应报文; 域名或 IP:电子设备(计算机,服务器)在网络中的唯一标识。 localhost代表本机地址; 127.0.0.1代表本机地址; 端口:应用程序在计算机中的唯一标识。0~65535之间,0~1023的端口可能被系统占用。 80是 http 用; 443是 https 用;
express 介绍
-
Express 是一个第三方模块,用于快速搭建服务器(替代http模块)
-
Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架。
-
Express保留了http模块的基本API,使用express的时候,也能使用http的API
- 使用express的时候,仍然可以使用http模块的方法,比如 res.end()、req.url
-
express还额外封装了一些新方法,能让我们更方便的搭建服务器
-
express提供了中间件功能,其他很多强大的第三方模块都是基于express开发的
使用Express构造Web服务器
使用Express构建Web服务器步骤:
加载 express 模块
创建 express 服务器
开启服务器
监听浏览器请求并进行处理
// 1.创建项目文件夹: 02_express
// 2.初始化 项目: npm init -y
// 3.安装第三方模块: npm i express@4.17.1
// 4.导入
const express = require('express');
// 5.创建实例对象
const app = express();
// 启动服务
app.listen(3006, () => {
console.log('http://localhost:3006');
})
编写端口
// 6.编写接口 - req.method req.url
app.get('/api/getbooks', (req, res) => {
// 原生 http 模块中req上的属性
console.log(req.method, req.url);
// 原生 http 模块中res上的方法
res.send('获取图书列表成功!');
});
app.post('/api/addbook', (req, res) => {
res.send('添加图书成功!');
});
响应头设置
// 设置响应状态码
res.status(201);
// 设置其他响应头
res.set({
"Content-Type": "application/json"
});
请求参数接收
1.请求路径中的参数,根据所在位置不同有两种:查询参数和路由参数;(get/delete常用)
查询参数: req.query 路由参数: req.params
2.请求体参数一种,但是传递参数的类型,常见的有三种;(post/put常用)
请求体参数: req.body;
获取请求体参数需要配置一句话,三种类型对应三种不同的配置方式: app.use( express.urlencode() ); 对应 content-type: application/x-www-form-urlencoded app.use( express.json() ); 对应 content-type: application/json const upload = multer({ dest: 'uploads/' }); (需要下载) app.use( upload.single('avatar') );