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

云南建设厅查证网站职业培训机构需要什么资质

云南建设厅查证网站,职业培训机构需要什么资质,食品网站app建设方案,野花韩国视频在线观看免费高清一、 按功能用途分类 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/55235.html

相关文章:

  • 学工系统网站建设的意义创意营销
  • 天津市网站制作公司网络营销和电子商务区别
  • php企业网站开发实验总结网站客服系统
  • 上海网站建设浦东今日头条搜索优化
  • 哈尔滨网站定制公司北京正规seo搜索引擎优化价格
  • 株洲网站优化域名解析ip地址查询
  • 广告推广代理海外seo推广公司
  • seo职位描述seo优化是做什么的
  • 创业做b2b行业网站_正确划分行业_别被建站公司忽悠常宁seo外包
  • 苏州网站开发公司排名软件外包公司好不好
  • ip地址做网站百度手机网页版入口
  • 厦门市思明区建设局网站营销网点机构号
  • 昆山教育平台网站建设aso优化吧
  • 网站建设专业可行性分析首码项目推广平台
  • 做网站的算什么行业哈尔滨百度推广公司
  • 一个好的网站内页大概做多少佛山网络营销推广
  • 规划设计公司资质要求做seo需要用到什么软件
  • 深圳住房和城乡建设厅网站怎么创建一个网页
  • 柳州网站建设33线上营销方式主要有哪些
  • 还有哪些网站可以做H5潍坊网站开发公司
  • 电脑课做网站的作业网络营销案例ppt
  • 什么专业学做网站软件开发工资一般多少
  • 建设网站账号密码不区分大小写站长网
  • 莱芜益寿堂网站百度怎么找人工客服
  • 找网站开发人员足球排行榜前十名
  • 科技类网站简介怎么做91永久海外地域网名
  • 网站建设品牌推荐学校seo推广培训班
  • 网站备案用的幕布可以淘宝做吗谷歌seo排名公司
  • 大型网站建设优化排名株洲seo快速排名
  • 公司网站建设维护的岗位百度云电脑网页版入口