Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
NewRouter
✓ import { NewRouter } from 'koatty_router'
✗ const NewRouter = require('koatty_router').NewRouter
ESM-only since v2; CJS not supported.
Controller
✓ import { Controller } from 'koatty_router'
✗ import { Controller } from 'koatty_core'
Controller装饰器定义在koatty_router中,不是koatty_core。
Get
✓ import { Get } from 'koatty_router'
✗ import { GetMapping } from 'koatty_router'
Get是别名,GetMapping是完整名称,两者均可使用。
RouterFactory
✓ import { RouterFactory } from 'koatty_router'
✗ import { RouterFactory } from 'koatty_router/factory'
RouterFactory从主包导出,无需子路径。
演示使用NewRouter创建HTTP路由器、@Controller/@Get装饰器定义路由,以及启动应用。
import { NewRouter, Controller, Get } from 'koatty_router';
import { Koatty } from 'koatty_core';
const app = new Koatty();
// 创建HTTP路由器
const httpRouter = NewRouter(app, {
protocol: 'http',
prefix: '/api'
});
// 定义控制器(需先在应用启动前注册)
@Controller('/user')
class UserController {
@Get('/profile')
async getProfile(@Get('id') id: string) {
return { id, name: 'user' };
}
}
// 注册控制器(实际使用中由框架自动扫描)
httpRouter.addController(UserController);
// 启动应用
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Errors
Common errors & fixes
Error: Cannot find module 'koatty_router'
没有安装koatty_router或node_modules缺失。
fix运行npm install koatty_router(确保package.json中有依赖,然后npm install)。
TypeError: NewRouter is not a function
CommonJS require导入方式,但v2只支持ESM。
fix改为import { NewRouter } from 'koatty_router'并在package.json中添加type: module。 Reflect.getMetadata is not a function
缺少reflect-metadata shim。
fix运行npm install reflect-metadata,并在应用入口文件顶部import 'reflect-metadata'(确保顺序)。
Protocol 'grpc' is not supported. Supported protocols are: http, https, ws, wss, grpc, graphql
传递了不支持的协议值或拼写错误。
fix检查protocol参数,确保是'http'、'https'、'ws'、'wss'、'grpc'或'graphql'。
Audit
Dependencies
koatty_corerequired提供Application、KoattyContext等核心类型和类
reflect-metadatarequired装饰器依赖元数据反射