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

H3初识——入门介绍之路由、路由元数据

简介

H3 提供了灵活且高性能的路由系统,支持多种 HTTP 方法、动态参数和中间件组合,适用于现代 Web 服务开发。

基本用法

import { H3, serve } from "h3";const app = new H3();// 定义 GET 路由
app.get("/", (context) => {return "Hello H3 路由!";
});// 定义 POST 路由
app.post("/submit", async (context) => {const body = await context.req.json();return { message: "收到数据", data: body };
});// 定义 all 路由
app.all("/all", (context) => {return "所有方法都可以访问此路由";
});// 定义 any 路由
app.any("/any", (context) => {return "所有方法都可以访问此路由";
});serve(app, { port: 3000 });

路由参数

H3 支持动态路由参数:

app.get("/user/:id", (context) => {const { id } = context.params;return `用户ID: ${id}`;
});

H3 支持通配符路由:

app.get("/user/*", (context) => {const { path } = context.params;return `通配符路径: ${path}`;
});

路由元数据

在 H3 中,可以为路由添加自定义元数据(meta),用于权限控制、文档生成等场景。以下是使用示例:

function withAuth(handler, meta) {return (event) => {if (meta.requiresAuth) {// 获取 cookie 中的 tokenconst token = getCookie(event, "token");// 这里可以做更复杂的 token 校验,比如 JWT 验证if (!token || token !== "123456") {event.res.headers.set("Content-Type", "text/plain; charset=utf-8");return "未授权,token无效";}}event.res.headers.set("Content-Type", "text/plain; charset=utf-8");return handler(event);};
}app.get("/admin",withAuth((event) => {return "管理员页面";},{ requiresAuth: true, role: "admin", description: "管理员专用页面" })
);app.get("/public",withAuth((event) => {return "公开页面";},{ requiresAuth: false, description: "无需登录的页面" })
);

说明

  • meta 字段可以自定义任意结构,用于存储与路由相关的附加信息。
  • 结合中间件,可以实现权限、日志、自动文档等高级功能。

参考链接

  • H3 官方中文文档

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

http://www.dtcms.com/a/268499.html

相关文章:

  • Maven 依赖管理中的 <optional> 与 <scope>标签
  • 管道机器人手臂机械结构设计cad【8张】+三维图+设计说明书+绛重
  • PDF 上传并保存到 MinIO 数据库
  • 基于Python实现LSTM对股票走势的预测
  • 机器学习知识
  • 医疗AI底层能力全链条工程方案的深度分析:从技术突破到临床应用
  • Mask机制​​中的​​Padding Mask​​ 和 ​​Sentence Mask
  • DCL-2-权限控制
  • 项目进度受上游依赖影响大,如何降低风险
  • 国民经济行业分类 GB/T 4754—2017 (PDF和exce版本)
  • .NET9 实现 JSON 序列化和反序列化(Newtonsoft.Json System.Text.Json)性能测试
  • Mysql8.0高可用集群架构实战
  • MySQL 8.0 OCP 1Z0-908 题目解析(21)
  • 熟练掌握ModbusTCP转PROFINET网关的互转技术
  • 深入解析迭代器模式:优雅地遍历聚合对象元素
  • 数据挖掘:深度解析与实战应用
  • IRF堆叠技术的主要优势
  • 学车笔记6
  • 李宏毅genai 笔记:预训练-对齐
  • 【Pyhton】文件读取:读取整个(大型)文件
  • 锁和事务的关系
  • Web攻防-XMLXXE上传解析文件预览接口服务白盒审计应用功能SRC报告
  • Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
  • .golangci.yml文件配置
  • 机器学习之线性回归
  • mybatis-plus从入门到入土(二):单元测试
  • Podman与Docker详细比较:从原理到使用
  • 深度学习图像分类数据集—蘑菇可食性识别分类
  • 深度学习篇---深度学习常见的应用场景
  • IndexedDB(概念、基本使用、Dexie.js的使用)