Dart 渡槽压路机

Dart 渡槽压路机,dart,aqueduct,Dart,Aqueduct,我有两个控制器,一个资源,另一个正常。它们在同一个线程中,必须同时运行 我故意在一个正常的控制器中插入一个突然返回,以确保它被忽略 常规控制员: import 'package:aqueduct/aqueduct.dart'; import 'package:app_server/app_server.dart'; class InputController extends Controller { @override Future<RequestOrResponse> h

我有两个控制器,一个资源,另一个正常。它们在同一个线程中,必须同时运行

我故意在一个正常的控制器中插入一个突然返回,以确保它被忽略

常规控制员:

import 'package:aqueduct/aqueduct.dart';
import 'package:app_server/app_server.dart';

class InputController extends Controller {
  @override
  Future<RequestOrResponse> handle(Request request) async {
    return Response.badRequest();
  }
}

通道跳过InputController,并立即进入资源控制器(AuthorizationController)。

事实上,它不会跳过
InputController
(如果您愿意,可以在内部打印f:),但它可以在
router.route(“/auth/[:type]”)返回的对象上工作
而不是
InputController
的结果

换句话说,您的频道可以按如下方式编写:

@覆盖
控制器获取入口点{
最终路由器=路由器();
var router2=router.route(“/auth/[:type]”);
router2=router2.link(()=>InputController())
router2=router2.link(()=>AuthorizationController(上下文));
返回路由器;
}
更改为通道中的正常链以解决巡更问题:

@覆盖
控制器获取入口点{
最终路由器=路由器();
router.route(“/auth/[:type]”)
.link(()=>InputController())
.link(()=>AuthorizationController(上下文));
返回路由器;
}

哦,天哪。整个问题都在不必要的地方。。。谢谢,我还需要学习这个话题。
@override
  Controller get entryPoint {
    final router = Router();
    
    router.route("/auth/[:type]")
      ..link(() => InputController())
      ..link(() => AuthorizationController(context));
    
    return router;

  }