Router

提供简单服务端路由的中间件。

配置参数

basePath string
strict boolean

描述

此中间件使用 URLPattern 标准实现了一个简单的路由。路由处理程序的第一个参数是一个对象,其中包含路径中捕获的所有变量,以及 request 实例:

const router = new Router();

router.get("/search/:id", ({ id, request }) => {
  const { searchParams } = new URL(request.url);

  const query = searchParams.get("query");
  return new Response(`Searching by ${query} in the file ${id}`);
});

安装

此中间件必须与 Lume 的 HTTP 服务器 一起使用。要在生产环境中使用它,你需要 一个运行 Deno 服务器的主机,例如 Deno Deploy

创建一个入口点文件(例如,serve.ts),包含以下代码:

import Server from "lume/core/server.ts";
import Router from "lume/middlewares/router.ts";

// 创建路由
const router = new Router();

router.get("/hello/:name", ({ name }) => {
  return new Response(`Hello ${name}!`);
});

// 创建服务器并使用路由:
const server = new Server();
server.use(router.middleware());

server.start();

本地开发

你可以配置 Lume 的开发服务器以在 _config.ts 文件中使用此中间件。假设你有一个 my-router.ts 文件,它导出一个 Router 实例:

import lume from "lume/mod.ts";
import myRouter from "./my-router.ts";

const site = lume({
  server: {
    middlewares: [myRouter.middleware()],
  },
});

export default site;