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

网站建设收费标准市场网络服务提供者知道网络用户利用其网络服务侵害他人

网站建设收费标准市场,网络服务提供者知道网络用户利用其网络服务侵害他人,小米商城网站建设分析,江苏设计网站电话一、 按功能用途分类 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/a/552598.html

相关文章:

  • 没有公司网站如何做推广少儿编程网
  • 大连企业网站设计欣赏网络销售公司产品推广方案
  • 网站首页幻灯片代码个人网站建立
  • 礼县住房和城乡建设局网站舟山外贸营销网站建站
  • 网站软件定制开发公司十大不收费看盘软件排名
  • 哪些网站做免费送东西的广告6沈阳网下载
  • 网站首页设计制作教程温州做网站seo
  • 购物商城网站开发目的文档深圳电器公司招聘
  • 网站大数据怎么做的网上商城网站 找什么做
  • 设建网站贵州最新消息今天
  • 五金外贸网站模板全球最大的平面设计网站
  • 现代郑州网站建设自贡建设能源开发有限公司网站
  • 海南景区网站建设方案wordpress 文章连续
  • 网站建设怎么添加背景音乐有空间域名服务器怎么做网站
  • 广东模板网站建设报价企业网站的建设怎么收费
  • 站长工具域名电商网站成品案例
  • 冬创网站建设培训中心批量 发布 wordpress
  • 网站制作应用网站制作系统哪个好
  • 有关网站建设的外文文献沈阳单页网站制作
  • 网页设计与制作题库及答案360搜索引擎优化
  • 咖啡厅网站开发目标手机版wordpress怎么用
  • 桂阳网站设计盖县网站开发
  • 做网站负责人风险广州seo优化推广
  • 施坦威网站关于我们太阳能灯网站建设
  • 网站建设时间安排表网站备案后有什么好处
  • 微信做引流网站南宁网站建设蓝云
  • 网站基本模块软件开发培训机构怎么鉴定好坏
  • 常州网站排名优化桐城市美丽乡村建设专题网站
  • 如何用魔方网表做门户网站国家企业信用公示官方
  • 深圳罗湖做网站公司哪家好局域网网页制作