当前位置: 首页 > wzjs >正文

云南建设厅查证网站武汉网络推广广告公司

云南建设厅查证网站,武汉网络推广广告公司,房地产趋势与前景,旅游网站制作内容一、 按功能用途分类 1. 应用级中间件 这类中间件应用于整个 Express 应用程序,会对每个进入应用的请求进行处理。通过 app.use() 方法挂载,可用于执行一些全局性的任务,像日志记录、请求预处理、设置响应头这类操作。 const express req…

一、 按功能用途分类

1. 应用级中间件

这类中间件应用于整个 Express 应用程序,会对每个进入应用的请求进行处理。通过 `app.use()` 方法挂载,可用于执行一些全局性的任务,像日志记录、请求预处理、设置响应头这类操作。

const express = require("express");const app = express();// 记录请求日志的应用级中间件app.use((req, res, next) => {console.log(`Received ${req.method} request for ${req.url}`);next();});app.get("/", (req, res) => {res.send("Hello, World!");});app.listen(3000, () => {console.log("Server running on port 3000");});

2. 路由级中间件

它与特定的路由相关联,只会处理匹配该路由的请求。可以使用 `express.Router()` 创建路由实例,再在上面挂载中间件。

const express = require("express");const app = express();const router = express.Router();// 路由级中间件router.use((req, res, next) => {console.log("This is a router-level middleware");next();});router.get("/", (req, res) => {res.send("Hello from the router!");});app.use("/router", router);app.listen(3000, () => {console.log("Server running on port 3000");});

3. 错误处理中间件

专门用来捕获和处理应用程序里的错误。错误处理中间件有四个参数 `(err, req, res, next)`,在调用 `next(err)` 传递错误时会被触发。

const express = require("express");const app = express();app.get("/", (req, res, next) => {const err = new Error("Something went wrong");next(err);});// 错误处理中间件app.use((err, req, res, next) => {console.error(err);res.status(500).send("Internal Server Error");});app.listen(3000, () => {console.log("Server running on port 3000");});

4. 内置中间件

Express 自身提供了一些内置中间件,能够实现常见的功能。例如 `express.static()` 可用于提供静态文件服务,`express.json()` 用于解析 JSON 格式的请求体,`express.urlencoded()` 用于解析 `x-www-form-urlencoded` 格式的请求体。

const express = require("express");const app = express();// 使用 express.static 提供静态文件服务app.use(express.static("public"));// 使用 express.json 解析 JSON 请求体app.use(express.json());app.post("/data", (req, res) => {console.log(req.body);res.send("Data received");});app.listen(3000, () => {console.log("Server running on port 3000");});

5. 第三方中间件

由社区开发和维护,能为 Express 应用增添额外的功能。比如 `body-parser` 用于解析请求体,`morgan` 用于记录请求日志,`cookie-parser` 用于解析 Cookie。

const express = require("express");const app = express();const morgan = require("morgan");const bodyParser = require("body-parser");// 使用 morgan 记录请求日志app.use(morgan("dev"));// 使用 body-parser 解析请求体app.use(bodyParser.json());app.post("/submit", (req, res) => {console.log(req.body);res.send("Form submitted successfully");});app.listen(3000, () => {console.log("Server running on port 3000");});

二、按执行顺序分类

1. 前置中间件

在路由处理函数之前执行,主要用于对请求进行预处理,像验证请求参数、解析请求体、进行身份验证这类操作。

2. 后置中间件

在路由处理函数之后执行,一般用于对响应进行处理,比如设置响应头、格式化响应数据等。

三、按是否异步分类

1. 同步中间件

同步执行代码,不会使用异步操作(如 `Promise`、`async/await`)。当中间件执行完其逻辑后,会立即调用 `next()` 函数将控制权传递给下一个中间件或路由处理函数。

2. 异步中间件

包含异步操作,例如数据库查询、文件读取、网络请求等。在异步中间件里,需要使用 `async/await` 或者回调函数来处理异步操作,确保在异步操作完成后再调用 `next()` 函数。

const express = require("express");const app = express();// 异步中间件示例app.use(async (req, res, next) => {try {// 模拟异步操作await new Promise((resolve) => setTimeout(resolve, 1000));console.log("Async middleware executed");next();} catch (err) {next(err);}});app.get("/", (req, res) => {res.send("Hello, World!");});app.listen(3000, () => {console.log("Server running on port 3000");});

http://www.dtcms.com/wzjs/286878.html

相关文章:

  • 上海知名网站建基本营销策略有哪些
  • 网站数字签名seo查询优化
  • 江门网站推广排名北京seo多少钱
  • logo123seo矩阵培训
  • 东莞网站建设总结手机制作网站的软件
  • asp.net网站开发实战搜索引擎优化seo信息
  • 室内设计效果图360全景图西安seo排名
  • 网站原型广东今天新闻最新消息
  • 网站权重高 做别的关键词百度账号注销
  • 烟台cms建站模板seo免费诊断电话
  • 网站建设销售员话术网络平台有哪些
  • 网页设计导航栏代码模板网站是怎么优化的
  • 沧州市做网站的种子搜索引擎在线
  • 深圳专业营销网站制作代理推广月入5万
  • 广州h5网站制作百度渠道开户
  • php专业网站百度手机端排名
  • 网站被镜像怎么做百度快速排名点击器
  • 网站收录多少才有排名天津百度网站快速排名
  • 中央纪委监察部网站两学一做电工培训机构
  • 网站建设08keji最新新闻热点事件
  • 有关网站招标商务标书怎么做东莞seo项目优化方法
  • 网站建设报价单 下载网图搜索识别
  • 如何做链接淘宝客的网站google竞价推广
  • 网站正在建设中 av手机版西安自动seo
  • 免费推广网站工具白酒最有效的推广方式
  • 做设计什么兼职网站查询网站域名
  • 晋江网站建设价格seo站外推广
  • 免费推广的预期效果seo难不难学
  • 很多网站没排名了小广告网页
  • 免费商城源码优化神马网站关键词排名价格