Express (一)-- 初识(get/post)

express 介绍

  • Express 是一个第三方模块,用于快速搭建服务器
  • Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架。
  • express保留了http模块的基本API,使用express的时候,也能使用http的API
  • express还额外封装了一些新方法,能让我们更方便的搭建服务器
  • express提供了中间件功能,其他很多强大的第三方模块都是基于express开发的
    Express 官网
    Express 中文文档

安装express

项目文件夹中,执行 npm i express。即可下载安装express。

注意:express不能安装在express文件夹中。否则安装失败。

使用Express构造Web服务器

使用Express构建Web服务器步骤:
  1. 加载 express 模块
  2. 创建 express 服务器
  3. 开启服务器
  4. 监听浏览器请求并进行处理
// 使用express 搭建web服务器
// 1) 加载 express 模块
const express = require('express');

// 2) 创建 express 服务器
const app = express();

// 3) 定义端口号port
//const port = 3000;

// 4) 开启服务器
app.listen(port, () => console.log(`express服务器开始工作了请访问${port}`));

// 5) 监听浏览器请求并进行处理
app.get('/', (req,res) => {
    res.send('hello express')
});

//app.post('POST请求的地址', 处理函数);

express封装的新方法

  • express
    • express.static() – 开放静态资源
    • express.urlencoded() – 获取POST请求体
  • app
    • app.get() – 处理客户端的GET请求
    • app.post() – 处理客户端的POST请求
    • app.use() – 设置应用级别的中间件
  • req
    • req.body – 获取POST请求体
    • req.params – 获取GET请求动态参数
    • req.query – 获取GET请求参数(获取查询字符串参数)
  • res
    • res.sendFile(文件的绝对路径) – 读取文件,并将结果响应
    • res.set({name, value}) – 设置响应头
    • res.status(200) – 设置响应状态码
    • res.send(字符串或对象) – 响应结果
    • res.json(对象) – 以JSON格式响应结果

GET接口

// app.get('请求的URL', callback);
app.get('/api/getbooks', (req, res) => {
    // 处理GET方式的/api/getbooks接口
});

app.get('/', (req, res) => {
    // 客户端没有指定请求的url,在这里处理。
});

app.get('*', (req, res) => {
    // 处理所有的GET请求
})

app.get(’*’, (req, res) => {}) 他能够匹配到所有的GET请求,所以把它放到所有接口的最后。

获取GET方式请求的参数

获取url?参数=值&参数=值
  • 这种方式的参数,比较常规,参数部分也叫做查询字符串
  • 请求地址的写法: http://localhost:3006/test?id=3&bookname=zxx&age=20
  • 获取方式:req.query
// 写接口
app.get('/test', (req, res) => {
    
    console.log(req.query); // { id: '3', bookname: 'zxx', age: '20' }
    res.send('收到参数')
});
获取 url/:id/:name/:age
  • 这种方式的参数,叫做动态参数
  • 请求地址的写法:http://localhost:3006/test/3/zs/30
  • 要求请求的url参数必填,否则不能和定义的接口匹配
// 1个参数
// 浏览器的请求  http://localhost/test/3
// 测试接口,获取动态参数
app.get('/test/:id', (req, res) => {
	console.log(req.params); // 可以获取所有的动态参数 { id: 3 }
    res.send('收到参数');
});

// 多个参数
// 浏览器的请求  http://localhost/test2/3/zhangsan/20
// 测试接口,获取多个动态参数
app.get('/test2/:id/:name/:age', (req, res) => {
    console.log(req.params); // 可以获取所有的动态参数  
    // { id: '4', name: 'zhangsan', age: '20' }
    res.send('全部收到');
});

POST接口

// app.post('请求的URL', callback);
app.post('/api/addbook', (req, res) => {
    // 处理POST方式的/api/addbook接口
});

app.post('*', (req, res) => {
    // 处理所有的POST请求
})

获取POST请求体

  • GET方式没有请求体,POST方式才有请求体。
  • 请求体,即客户端提交的数据。
  • 我们仍然可以使用http模块中的语法,获取请求体。
  • POST请求体,有哪些格式
    • 查询字符串 – 对应的Content-Type: application/x-www-form-urlencoded
    • FormData对象 – 对应的Content-Type: multipart/form-data; --XXADFsdfssf
请求体是查询字符串
// 客户端,需要发送POST请求,提交的数据随便写

// 写接口之前,配置
// 可以帮我们接收 content-type: application/x-www-form-urlencoded类型的请求体
app.use(express.urlencoded({extended: false}));

// 后续,任何一个POST接口,都可以通过req.body获取到请求体的内容
app.post('/test', (req, res) => {
    // 获取请求体
    console.log(req.body);
    res.send('你的请求体收到了');
});

postman发送一个POST方式的请求,来配合测试:

获取FormData类型的请求体
比较麻烦,需要使用第三方模块(multer)才能够获取到。这里不做演示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值