# @ditojs/router 中文文档

规范地址：https://npmcn.com/package/%40ditojs/router/

版本：6\.8\.0
npm 元数据更新时间：2026-11-12T11:03:55.378Z
中文译文更新时间：2026-11-12T12:04:30.731Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ditojs/router
原文对照：https://npmcn.com/package/%40ditojs/router/?lang=original
源码仓库：https://github.com/ditojs/dito/tree/main/packages/router

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：18.7 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>= 24\.0\.0
- 运行依赖：1 个
- 首次发布：2018-10-08T05:55:42.923Z
- 最新版本发布：2026-11-12T11:03:54.966Z
- 近 30 天下载量：5949（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：429（近 12 个月 79 个）

## 中文简介

Dito.js router – Dito.js是一个声明和现代的网络框架,基于Objection.js, Koa.js和Vue.js

## 安装

```sh
npm install @ditojs/router
```

也可以使用：`pnpm add @ditojs/router`、`yarn add @ditojs/router`、`bun add @ditojs/router`

## README

# Dito.js 路由器

Dito.js 是一个以 API 驱动为焦点的 声明性现代网络框架 根据Koa.js、Objection.js和Vue.js编写

2018年被麻省理工学院许可释放,后得到支持 [https://lineto.com/ 页面存档备份,存于互联网档案馆](https://lineto.com/)

Dito.js 路由器是一个高性能,以树为主,框架可知的 HTTP 路由器,基于 [出行路线](https://github.com/trekjs/router),反过来 灵感来自 [回声](https://github.com/labstack/echo)路由器.

## 怎么会这样?

路由器依赖于一个树结构,它大量使用常见的 前缀, 本质上是 a [前缀树](https://en.wikipedia.org/wiki/Trie)。 。 。 .

## 使用量

```js
import Koa from 'koa'
import Router from '@ditojs/router'

const app = new Koa()
const router = new Router()

// static route
router.get('/folders/files/bolt.gif', ctx => {
  ctx.body = `this ain't no GIF!`
})

// param route
router.get('/users/:id', ctx => {
  ctx.body = `requesting user ${ctx.params.id}`
})

// wildcard routes: `*` matches one segment, `**` the rest of the path
router.get('/books/*', ctx => {
  ctx.body = `book: ${ctx.params.$}`
})
router.get('/files/**', ctx => {
  ctx.body = `file: ${ctx.params.$$}`
})

// Handler found, methods are matched in any case
const { handler, params } = router.find('GET', '/users/233')
console.log(handler, params) // ctx => { ... } { id: '233' }

// HEAD requests fall back on GET routes
router.find('HEAD', '/users/233').handler // ctx => { ... }

// Entry not found
const result = router.find('GET', '/photos/233')
console.log(result.handler, result.status) // undefined 404

// Other methods handle the path, see the statuses in the API docs
router.find('POST', '/users/233') // { status: 501, allowed: ['GET', 'HEAD'] }

// Install router middleware
app.use(async (ctx, next) => {
  const { method, path } = ctx
  const result = router.find(method, path)
  const { handler, params } = result
  if (handler) {
    ctx.params = params || {}
    return handler(ctx, next)
  } else {
    try {
      await next()
    } finally {
      if (ctx.body === undefined && ctx.status === 404) {
        ctx.status = result.status
        if (ctx.status !== 404) {
          ctx.set('Allow', result.allowed.join(', '))
        }
      }
    }
  }
})

app.listen(4040, () => console.log('Koa app listening on 4040'))
```

## 选项和 API

见 [路由器 API 文件](https://github.com/ditojs/dito/blob/main/docs/api/router.md) 联 合 国 `prefix` 财务报告和审定财务报表 `strict` 选项、路径和状态 错过了.

## 常见问题

### @ditojs/router 是什么？

Dito\.js router – Dito\.js是一个声明和现代的网络框架,基于Objection\.js, Koa\.js和Vue\.js

### 如何安装 @ditojs/router？

在项目目录运行 npm install @ditojs/router，或使用 pnpm add / yarn add / bun add。

### @ditojs/router 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/ditojs\_\_router 是否存在。

### @ditojs/router 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ditojs/router 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ditojs/router 可以商用吗？

@ditojs/router 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ditojs/router 的下载量有多少？

根据 npm 官方下载统计，@ditojs/router 在 2026/10/13 – 2026/11/11 这 30 天内被下载 5,949 次，日均约 198 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ditojs/router 还在维护吗？

最新版本 6\.8\.0 发布于 2026/11/12（今天）；至今共发布 429 个版本，其中过去 12 个月发布了 79 个；首次发布于 2018/10/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

