HTTP 服务器:路由
在 Github 上编辑
一个 HTTP 服务器示例,该服务器根据传入的 URL 处理具有不同响应的请求。
URL 模式可用于匹配请求 URL。它们可以包含命名组,这些命名组可用于提取 URL 的部分,例如书籍 ID。
const BOOK_ROUTE = new URLPattern({ pathname: "/books/:id" });
function handler(req: Request): Response {
将传入的请求与 URL 模式进行匹配。
const match = BOOK_ROUTE.exec(req.url);
如果存在匹配项,则提取书籍 ID 并返回响应。
if (match) {
const id = match.pathname.groups.id;
return new Response(`Book ${id}`);
}
如果不存在匹配项,则返回 404 响应。
return new Response("Not found (try /books/1)", {
status: 404,
});
}
要在默认端口上启动服务器,请使用处理程序调用 `Deno.serve`。
Deno.serve(handler);
使用 Deno CLI 在本地运行此示例
deno run --allow-net https://docs.deno.org.cn/examples/scripts/http_server_routing.ts
在 Deno Deploy playground 中尝试此示例