You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Deno HTTP处理器多路由实现及返回值错误解决问询

问题解决方案

1. 错误原因分析

你遇到的TypeScript错误,是因为当前函数仅在请求路径匹配/和/about时返回了Response,但当请求其他路径时没有任何返回值,TypeScript会认为函数可能返回undefined,这和你声明的返回类型Promise<Response>不兼容,所以抛出了错误。

2. 路由判断的正确姿势

直接比较req.url是不可靠的,因为req.url是完整的请求URL(比如http://localhost:8000/),而非单纯的路径部分。正确的做法是通过URL对象提取路径部分pathname来做路由匹配。

3. 修改后的完整代码

async function handler(req: Request): Promise<Response> {
  const url = new URL(req.url);
  const path = url.pathname;

  if (path === "/") {
    return new Response(`Ruta visitada ${path}`);
  }
  if (path === "/about") {
    return new Response(`Ruta visitada ${path}`);
  }

  // 处理所有未匹配的路由,返回404响应
  return new Response("404 - Ruta no encontrada", { status: 404 });
}

关键改动说明

  • 用new URL(req.url).pathname获取纯路径部分,确保路由匹配的准确性。
  • 添加了默认返回的404响应,保证函数在任何分支下都返回Response,解决TypeScript类型错误。

内容的提问来源于stack exchange,提问作者Raxabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:06:45