06-Express-next方法

528 阅读1分钟

1.邂逅next

废物不多说,直接上代码

const express = require("express");
const app = express();
/*
- use既可以处理没有路由地址的请求,也可以处理有路由地址请求
- use既可以处理get请求,也可以处理post请求
- 在处理请求的时候是从上至下的判断的,默认情况下执行了第一次就不会执行了
- 如果在处理请求的回调函数中没有调用next方法,那么处理完以后就不会继续往下执行
- 如果在处理请求的回调函数中调用了next方法,那么就会处理完以后继续往下执行
 */
app.use((req, res, next) => {
  console.log("use1,没有路由地址");
  next();
});
app.use((req, res, next) => {
  console.log("use2,没有路由地址");
  next();
});
app.get("/api", (req, res, next) => {
  console.log("get1 /api");
  next();
});
app.get("/api/user", (req, res, next) => {
  console.log("get2 /api/user");
  next();
});
app.post("/api", (req, res, next) => {
  console.log("post1 /api");
  next();
});
app.post("/api/user", (req, res, next) => {
  console.log("post1 /api/user");
  next();
});
app.listen(666, () => {
  console.log("服务器启动成功");
});

效果图

2.next的正确使用

废物不多说,直接上代码

const express = require("express");
const app = express();
// 通过next方法可以将用一个请求的多个业务逻辑拆分到不同的方法中处理
// 这样可以提升代码的可读性和可维护性,以及代码的单一性
app.get(
  "/api/user/info",
  (req, res, next) => {
    console.log("验证用户是否登录");
    next();
  },
  (req, res, next) => {
    console.log("用户已经登录,可以查看用户信息");
  }
);
app.listen(666, () => {
  console.log("服务器启动成功");
});

效果图