{"id":15097854,"url":"https://github.com/zskycat/koa-path-mapping","last_synced_at":"2026-01-06T08:30:32.572Z","repository":{"id":141480665,"uuid":"144492648","full_name":"ZSkycat/koa-path-mapping","owner":"ZSkycat","description":"用于对请求进行重定向或路径重写的 koa 中间件，支持对失败的请求进行路径重写。","archived":false,"fork":false,"pushed_at":"2018-08-24T18:27:35.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T17:44:44.362Z","etag":null,"topics":["error","koa-middleware","redirect","rewrite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZSkycat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-12T18:51:13.000Z","updated_at":"2018-08-24T18:27:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"31f6f507-ea34-4069-b3df-42c8a2a5fa66","html_url":"https://github.com/ZSkycat/koa-path-mapping","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"81f05699d4029e483666a4ef436d0bb042eda335"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZSkycat%2Fkoa-path-mapping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZSkycat%2Fkoa-path-mapping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZSkycat%2Fkoa-path-mapping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZSkycat%2Fkoa-path-mapping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZSkycat","download_url":"https://codeload.github.com/ZSkycat/koa-path-mapping/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245854872,"owners_count":20683428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["error","koa-middleware","redirect","rewrite"],"created_at":"2024-09-25T16:40:55.441Z","updated_at":"2026-01-06T08:30:32.540Z","avatar_url":"https://github.com/ZSkycat.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# koa-path-mapping\n[![version](https://img.shields.io/npm/v/koa-path-mapping.svg)](https://www.npmjs.com/package/koa-path-mapping)\n[![downloads](https://img.shields.io/npm/dt/koa-path-mapping.svg)](https://www.npmjs.com/package/koa-path-mapping)\n\nKoa middleware for redirect or path rewrite of requests. Support path rewrite of failed requests.\u003cbr\u003e\n用于对请求进行重定向或路径重写的 koa 中间件，支持对失败的请求进行路径重写。\u003cbr\u003e\n\n允许对 404 请求进行路径重写，并回退到 `next()`，对于以下场景非常有用：\n- 使用 `HTML5 History API` 的单页应用和多页应用\n- 使用 `webpack-dev-middleware` 的开发服务器，例如 `webpack-serve`\n\n## 起步\n**安装**\n```\nnpm install --save-dev koa-path-mapping\n```\n\n**用法**\n```javascript\nconst Koa = require('koa');\nconst pathMappingMiddleware = require('koa-path-mapping').pathMappingMiddleware;\n\nconst app = new Koa();\nconst options = {\n    mapping: [\n        { action: 'redirect', from: '^/$', to: '/login' },\n        { action: 'rewrite', from: '^/game($|/)', to: '/app-game.html' },\n    ],\n    error: [{ action: 'rewrite', status: 404, to: '/app.html' }],\n};\napp.use(pathMappingMiddleware(options));\n```\n\n## API\n```javascript\npathMappingMiddleware(options: PathMappingOptions)\n```\n\n### PathMappingOptions\n创建中间件的选项。\n\n### PathMappingOptions.mapping\n**类型:** `MappingOptions[]`\u003cbr\u003e\n**默认:** `[]`\u003cbr\u003e\n[参考](#mappingoptions)\n\n### PathMappingOptions.error\n**类型:** `ErrorOptions[]`\u003cbr\u003e\n**默认:** `[]`\u003cbr\u003e\n[参考](#erroroptions)\n\n### PathMappingOptions.ignoreJson\n**类型:** `boolean`\u003cbr\u003e\n**默认:** `true`\u003cbr\u003e\n是否忽略 `application/json` 的请求。\n\n### PathMappingOptions.enableLog\n**类型:** `boolean`\u003cbr\u003e\n**默认:** `false`\u003cbr\u003e\n是否输出日志。\n\n### PathMappingOptions.logger\n**类型:** `Function`\u003cbr\u003e\n**默认:** `console.log`\u003cbr\u003e\n设置输出日志所使用的函数。\n\n---\n\n### MappingOptions\n对请求进行重定向或路径重写，在进入时执行。\n\n### MappingOptions.action\n**类型:** `'redirect' | 'rewrite'`\u003cbr\u003e\n设置执行的动作，必填。\n\n### MappingOptions.from\n**类型:** `RegExp | string`\u003cbr\u003e\n设置匹配的 `path`，如果未设置，则匹配所有的请求。值要求为 `RegExp` 实例，或是 `RegExp` 格式的字符串。\n\n### MappingOptions.to\n**类型:** `string`\u003cbr\u003e\n设置目标的 `path`，必填。\n\n---\n\n### ErrorOptions\n对失败的请求进行重定向或路径重写，在 `next()` 之后执行。如果匹配成功并执行路径重写，那么会再一次执行 `next()`。\n\n### ErrorOptions.action\n**类型:** `'redirect' | 'rewrite'`\u003cbr\u003e\n设置执行的动作，必填。\n\n### ErrorOptions.status\n**类型:** `number`\u003cbr\u003e\n设置匹配的状态码，如果未设置，则匹配 `status \u003e= 400`。\n\n### ErrorOptions.from\n**类型:** `RegExp | string`\u003cbr\u003e\n设置匹配的 `path`，如果未设置，则匹配所有的请求。值要求为 `RegExp` 实例，或是 `RegExp` 格式的字符串。\n\n### ErrorOptions.to\n**类型:** `string`\u003cbr\u003e\n设置目标的 `path`，必填。\n\n## License\n[MIT](https://github.com/ZSkycat/koa-path-mapping/blob/master/LICENSE.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzskycat%2Fkoa-path-mapping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzskycat%2Fkoa-path-mapping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzskycat%2Fkoa-path-mapping/lists"}