Node.js Express.js带有Typescript的路由
我想使用Typescript来指定更模块化的代码/OO 我想通过实现IRoute接口,然后将新路由添加到app.use()来实现路由/控制器 我面临的问题是,每个操作(get、post、put、delete)本身都会返回IRoute接口,我不确定返回什么。归来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编译器响应包含以下错误消息:
类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的路由控制器。