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

免费 支付宝购物网站模版个人网页制作

免费 支付宝购物网站模版,个人网页制作,上线公司 企业网站,昆明做网站哪家简介 H3 是 Nuxt 3 和 Nitro 的核心 HTTP 框架,提供了极简且高效的中间件机制。中间件(Middleware)是指在请求到达最终处理函数(Handler)之前,依次执行的一系列函数。它们可以用于处理认证、日志、错误处理…

简介

H3 是 Nuxt 3 和 Nitro 的核心 HTTP 框架,提供了极简且高效的中间件机制。中间件(Middleware)是指在请求到达最终处理函数(Handler)之前,依次执行的一系列函数。它们可以用于处理认证、日志、错误处理、请求解析等通用逻辑。

特点

  • 极简 API:中间件的编写和使用非常简单,易于上手。
  • 高性能:基于现代 Node.js 特性,性能优异。
  • 灵活组合:支持多个中间件串联,按顺序依次执行。
  • 类型安全:TypeScript 支持良好,开发体验佳。
  • 与 Nuxt/Nitro 深度集成:可无缝用于 Nuxt 3、Nitro 项目。

示例

基础示例

定义中间件

// middleware/logger.js
export default (req, res, next) => {console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);next();
};

在 H3 应用中注册:

import { H3 } from "h3";
import logger from "./middleware/logger";const app = new H3();app.use(logger);app.use("/hello", (req, res) => {res.end("Hello World");
});serve(app, { port: 3000 });

条件使用:可以根据路径、方法等条件灵活应用

app.use("/api", apiMiddleware);
app.use("/admin", adminAuthMiddleware);

常见应用场景

  • 认证与权限校验
  • 日志记录
  • 请求体解析
  • 错误统一处理
  • CORS 处理

参考链接

  • H3 官方中文文档

中间件

响应时间

app.use(async (event, next) => {const start = Date.now();await next();const end = Date.now();console.log(`Response time: ${end - start}ms`);
});

统一响应头

app.use((event, next) => {event.res.headers.set("Content-Type", "application/json; charset=utf-8");return next();
});

访问统计

app.use(async (event, next) => {const url = event.req.url;const statsFile = "logs/stats.json";let stats = {};try {stats = JSON.parse(await readFile(statsFile, "utf-8"));} catch {}stats[url] = (stats[url] || 0) + 1;await writeFile(statsFile, JSON.stringify(stats, null, 2));return next();
});

跨域(CORS)

app.use((event, next) => {event.res.headers.set("Content-Type", "application/json; charset=utf-8");event.res.headers.set("Access-Control-Allow-Origin", "*");event.res.headers.set("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS");event.res.headers.set("Access-Control-Allow-Headers","Content-Type,Authorization");// 预检请求直接返回if (event.req.method === "OPTIONS") {return "";}return next();
});

禁止某些 UA 访问

app.use((event, next) => {const ua = event.req.headers.get("user-agent") || "";if (ua.includes("curl") || ua.includes("python")) {event.res.statusCode = 403;return { code: 403, message: "禁止访问" };}return next();
});

禁用指定 IP 访问

const blacklist = ["1.2.3.4", "5.6.7.8"];
app.use((event, next) => {const ip =event.req.headers.get("x-forwarded-for") || event.req.socket.remoteAddress;if (blacklist.includes(ip)) {event.res.statusCode = 403;return { code: 403, message: "IP被禁止访问" };}return next();
});

国际化(i18n)

const messages = {zh: { welcome: "欢迎" },en: { welcome: "Welcome" },
};
app.use((event, next) => {const lang = event.req.headers.get("accept-language")?.split(",")[0].toLowerCase().startsWith("zh")? "zh": "en";event.t = (key) => messages[lang][key] || key;return next();
});
// 用法:handler里 return { msg: event.t("welcome") }

接口缓存

const cache = new Map();
app.use(async (event, next) => {if (event.req.method === "GET") {const key = event.req.url;if (cache.has(key)) {return cache.get(key);}const result = await next();cache.set(key, result);setTimeout(() => cache.delete(key), 10 * 1000); // 缓存10秒return result;}return next();
});

 H3初识——入门介绍之中间件 - 高质量源码分享平台-免费下载各类网站源码与模板及前沿动态资讯

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

相关文章:

  • 什么是公司主页简述seo和sem的区别与联系
  • app制作网站有哪些 请列举最近发生的热点新闻事件
  • 网站建设必须要具备哪些知识seo外链怎么发
  • 做网站有了域名武汉seo收费
  • WordPress板块加密企业seo整站优化方案
  • 网站如何添加浮动窗口百度竞价开户公司
  • 网站群建设规划方案网页设计制作网站教程
  • 宝安网站设计最好的公司百度链接收录提交入口
  • 成都做网站的公司哪家好如何网络推广自己的产品
  • 做追星网站效果图西安网站seo优化公司
  • 网站模板开发平台怎么做优化关键词的作用
  • wap网站建设课程要写代码吗关键词排名顾问
  • 如何用图片做网站背景优化资讯
  • 郑州建设银行官网站steam交易链接怎么改
  • wordpress音乐单独播放武安百度seo
  • 做音乐网站赚钱吗简述在线推广网站的方法
  • 网站下面 备案ip切换工具
  • php门户网站源码郑州粒米seo顾问
  • 网站搭建公司排行天津推广的平台
  • 会网站开发如何自己赚怎么做个人网页
  • 城乡建设吧部网站外贸网站制作公司哪家好
  • 物流网站建设计划书最近实时热点事件
  • 市政府网站集约化建设抖音seo推广外包公司好做吗
  • 做网站最重要的是什么北京百度快速优化排名
  • 建设时时彩网站教程百度快照入口
  • 华为网站开发流程b站推广引流最佳方法
  • 做网站需要什么花费济南新站seo外包
  • 设计网站公司力荐亿企邦打开百度搜索网站
  • 网站建设费用免费网站alexa排名查询
  • 帮别人做网站违法吗搜狗指数官网