1.1 安装
使用 npm 安装,在包名后跟上 @可以指定版本号
1.2 创建基本的web服务器
// 1. 导入 expressconst express = require("express");// 2. 创建 web 服务器const app = express()// 3. 启动 web 服务器app.listen(80, () => {console.log('express服务器已启动,地址为 http://localhost:80');})
对比一下 http 模块创建服务器:
const http = require("http");const server = http.createServer((req, res) => {console.log('有请求访问');}).listen(80, () => {console.log('服务器server启动成功');})
1.3 监听GET/POST请求,并响应内容
监听GET请求
监听POST请求
URL地址
网络地址中 端口号后面的部分的所有内容(不包括端口号),就是URL地址。
比如 localhost:8080/user?id=1 中,/user?id=1 才是URL,不包括IP地址和端口号等内容。
将内容响应给客户端 res.send

// 4.监听客户端的get和post请求app.get('/user', (req, res) => {// 调用 express 提供的res.send() 方法,向客户端响应一个JSON对象res.send({ name: 'ming', age: 18, gender: 'male' })})app.post('/user', (req, res) => {// res.send方法既可以响应JSON也可以响应普通的文本内容res.send('你好像是想修改啥东西')})// 3. 启动 web 服务器app.listen(80, () => {console.log('express服务器已启动,地址为 http://localhost:80');})
监听方法可以写在启动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请求携带的参数。
1.5 获取URL中的动态参数

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