1.1 安装

使用 npm 安装,在包名后跟上 @可以指定版本号
image.png

1.2 创建基本的web服务器

  1. // 1. 导入 express
  2. const express = require("express");
  3. // 2. 创建 web 服务器
  4. const app = express()
  5. // 3. 启动 web 服务器
  6. app.listen(80, () => {
  7. console.log('express服务器已启动,地址为 http://localhost:80');
  8. })

对比一下 http 模块创建服务器:

  1. const http = require("http");
  2. const server = http.createServer((req, res) => {
  3. console.log('有请求访问');
  4. }).listen(80, () => {
  5. console.log('服务器server启动成功');
  6. })

1.3 监听GET/POST请求,并响应内容

监听GET请求

image.png

监听POST请求

image.png

URL地址

网络地址中 端口号后面的部分的所有内容(不包括端口号),就是URL地址。
比如 localhost:8080/user?id=1 中,/user?id=1 才是URL,不包括IP地址和端口号等内容。

将内容响应给客户端 res.send

image.png

  1. // 4.监听客户端的get和post请求
  2. app.get('/user', (req, res) => {
  3. // 调用 express 提供的res.send() 方法,向客户端响应一个JSON对象
  4. res.send({ name: 'ming', age: 18, gender: 'male' })
  5. })
  6. app.post('/user', (req, res) => {
  7. // res.send方法既可以响应JSON也可以响应普通的文本内容
  8. res.send('你好像是想修改啥东西')
  9. })
  10. // 3. 启动 web 服务器
  11. app.listen(80, () => {
  12. console.log('express服务器已启动,地址为 http://localhost:80');
  13. })

监听方法可以写在启动web服务器之前,也可以写在后面,都是能正常运行的,只是官网提供的样本中是写在前面的。

1.4 获取URL中携带的请求参数req.query

通常查询请求参数都是通过GET请求发送过来的,其URL形式为地址+query。其中问好后面的部分就是query即请求参数。
例如:https://www.baidu.com**?name=小明** 中问好后面的键值对 就是query的内容。

并且 req中的query就是axios中的params,但是req中的params就不是axios中的params了,而是动态参数:
并且也是apifox中的params,即GET请求携带的参数。
image.png

1.5 获取URL中的动态参数

image.png
比如 访问 localhost/user/1 这个地址,id就会自动匹配为 1 ,此时id等于1
image.png

动态参数

在URL中,通过 :变量名 形式的定义就是动态变量,在输入地址时可以动态传入不同的参数,在获取请求参数后就能自动匹配不同的参数。动态参数可以有多个,只要命名合法即可。
比如: http://localhost/:id/:username
访问:http://localhost/1/xiaoming
则获取到的params对象就是 : { id: 1, username: xiaoming } 这样的。
本质上还是 get 的请求参数,只不过是动态的。