express的介绍

express官网:https://www.expressjs.com.cn/

作用
Express可以快速搭建一个完整功能的网站。

好处
Express的作用于node.js中的内置的http模块类似,都是用来创建web服务的。但是http模块使用起来比较繁琐。开发效率低,Express是基于http模块封装出来的,能够极大的提高开发效率。
关系
http与Express的关系:JavaScript原生操作DOM 与 JQuery的关系。
安装Express
在项目的根目录下,输入【npm init】初始化。
运行

npm i express

创建服务器

const express = require("express")
//创建服务
let app = express();

app.get("/",(req,res)=>{
  res.send("Hello,world!")
})

app.listen(3000,()=>{console.log("服务器已启动");})

路由

什么是路由

路由就是网址,web服务器会根据用户输入的不同路径和请求方式,响应不同的页面。
基本格式
路由的组成:请求地址+请求方式。

http常见的请求方式:post(添加),get(获取)put(更新)delete(删除)

app.method(path,handler)
//method:请求方式
//path:请求路径
//handler:请求的处理函数。

匹配规则:
每当一个请求到达服务器后,需要经过路由的匹配。匹配请求地址和请求方式,匹配成功后,才会调用对应的处理函数。
模块化路由
为了方便对路由进行管理,Express不建议我们将所有的路由都罗列在一个文件中。

我们可以将路由分类,将同一类的路由抽离为一个模块。

1. 创建路由模块对应的js文件
2. 调用express.Rotuer()方法创建路由对象。
3. 在路由对象上挂载具体的路由。
4. 使用module.exprots导出路由对象
5. 在app.js中使用app.use方法来注册路由模块。

order.js文件如下

const express = require("express");
/**
 * 订单路由模块
 */
// 2.调用express.Rotuer()方法创建路由对象。
const order = express.Router();

//3.在路由对象上挂载具体的路由。
order.post("/order/add",(req,res)=> res.send("新增了一个订单"));
order.post("/order/edit",(req,res)=> res.send("修改了订单信息"));
order.post("/order/del",(req,res)=> res.send("删除了一个订单"));
order.get("/order/list",(req,res)=> res.send("查询所有的订单信息"));

//4.使用module.exprots导出路由对象
module.exports = order;

app.js文件如下

//在app.js中使用app.use方法来注册路由模块。
app.use(require("./order"));

获取参数

获取get参数

通过req.query即可获取get参数。 req.query是一个对象,包含所有的get参数。

//请求路径:http://localhost:3000/list?page=2&pageSize=3

//分页查询  默认一页显示3条数据
app.get("/list",(req,res)=>{
  //解构赋值
  let {page,pageSize} = req.query;
  res.send(page,pageSize);
})

获取post参数

需要先对post参数进行解析配置,然后通过req.body来获取post参数

app.use(express.urlencodeed({extended:false}));
//接受post请求。
app.post("/add",(req,res)=>{
    //req.body获取post参数
    res.send(req.body)
})

获取动态参数

通过req.params对象来获取动态参数

//动态参数  请求地址: http://127.0.0.1:3000/video/456/hewangle
app.get("/video/:id/:name",(req,res)=>{
  res.send(req.params);
})