Node.js Express.js带有Typescript的路由

Node.js Express.js带有Typescript的路由,node.js,express,typescript,typescript1.6,Node.js,Express,Typescript,Typescript1.6,我想使用Typescript来指定更模块化的代码/OO 我想通过实现IRoute接口,然后将新路由添加到app.use()来实现路由/控制器 我面临的问题是,每个操作(get、post、put、delete)本身都会返回IRoute接口,我不确定返回什么。归来 返回这个不起作用 typescript编译器响应包含以下错误消息: 类MessurmentsController不正确地实现接口IRoute。所有属性的类型都是不匹配的。Type(req:Request,res:Response,next

我想使用Typescript来指定更模块化的代码/OO

我想通过实现IRoute接口,然后将新路由添加到app.use()来实现路由/控制器

我面临的问题是,每个操作(get、post、put、delete)本身都会返回IRoute接口,我不确定返回什么。归来
返回这个不起作用

typescript编译器响应包含以下错误消息:

类MessurmentsController不正确地实现接口IRoute。所有
属性的类型都是不匹配的。Type
(req:Request,res:Response,next:Function)=>void
不可分配给
类型(…处理程序:RequestHandler[]):IRoute
。参数
req
handler
的类型不匹配。类型
Request
不能分配给类型
RequestHandler

//
从“express”导入{IRoute,Request,Response};
导出类MeasurementsController实现IRoute{
路径:字符串;
堆栈:任何;
构造函数(){
this.path=“/api/measurements”
}
全部(请求:请求,回复:响应,下一步:功能){
res.send(“”);
//归还这个;
}
获取(请求:请求,回复:响应,下一步:函数){
res.send(“”);
}
post(请求:请求,回复:响应,下一步:功能){
res.send(“”);
}
put(请求:请求,回复:响应,下一步:功能){
res.send(“”);
}
删除(请求:请求,回复:响应,下一步:功能){
res.send(“”);
}
补丁(请求:请求,回复:响应,下一步:功能){
res.send(“”);
}
选项(请求:请求、回复:响应、下一步:功能){
res.send(“”);
}
头部(请求:请求,回复:响应,下一步:功能){
res.send(“”);
}

}
我希望这会对您有所帮助

export class Admin implements IRoute {
    path: string;
    stack: any;
    constructor() {
        this.path = '/api/Admin';
    }

    all(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    get(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    post(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    put(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    delete(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    patch(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    options(handerl: RequestHandler): any {
        return <IRoute>this;
    }
    head(handerl: RequestHandler): any {
        return <IRoute>this;
    }
}
导出类管理员实现IRoute{
路径:字符串;
堆栈:任何;
构造函数(){
this.path='/api/Admin';
}
all(handerl:RequestHandler):任意{
归还这个;
}
get(handerl:RequestHandler):任意{
归还这个;
}
post(handerl:RequestHandler):任何{
归还这个;
}
put(handerl:RequestHandler):任意{
归还这个;
}
删除(handerl:RequestHandler):任意{
归还这个;
}
补丁(handerl:RequestHandler):任意{
归还这个;
}
选项(handerl:RequestHandler):任意{
归还这个;
}
head(handerl:RequestHandler):任何{
归还这个;
}
}

终于出现了一个解决方案:

路由控制器 允许创建控制器类,方法作为处理请求的操作。可以使用带有Exp.js或Ko.js的路由控制器。