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;
}