渡槽忽略控制器
Aqueduct ignores conroller
我有两个控制器,一个资源,另一个正常。他们在同一个线程中,并且都必须 运行.
我故意在普通控制器中突然插入一个 return 以确保它被忽略。
常规控制器:
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();
}
}
频道:
@override
Controller get entryPoint {
final router = Router();
router.route("/auth/[:type]")
..link(() => InputController())
..link(() => AuthorizationController(context));
return router;
}
通道跳过InputController,直接进入资源控制器(AuthorizationController)。
事实上它不会跳过 InputController
(如果你愿意的话,你可以在里面 printf :)),但它对 [=返回的对象起作用=13=] 而不是 InputController
.
的结果
换句话说,你的频道可以这样写:
@override
Controller get entryPoint {
final router = Router();
var router2 = router.route("/auth/[:type]");
router2 = router2.link(() => InputController())
router2 = router2.link(() => AuthorizationController(context));
return router;
}
将cascade notation更改为频道中的普通链以解决游览问题:
@override
Controller get entryPoint {
final router = Router();
router.route("/auth/[:type]")
.link(() => InputController())
.link(() => AuthorizationController(context));
return router;
}
我有两个控制器,一个资源,另一个正常。他们在同一个线程中,并且都必须 运行.
我故意在普通控制器中突然插入一个 return 以确保它被忽略。
常规控制器:
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();
}
}
频道:
@override
Controller get entryPoint {
final router = Router();
router.route("/auth/[:type]")
..link(() => InputController())
..link(() => AuthorizationController(context));
return router;
}
通道跳过InputController,直接进入资源控制器(AuthorizationController)。
事实上它不会跳过 InputController
(如果你愿意的话,你可以在里面 printf :)),但它对 [=返回的对象起作用=13=] 而不是 InputController
.
换句话说,你的频道可以这样写:
@override
Controller get entryPoint {
final router = Router();
var router2 = router.route("/auth/[:type]");
router2 = router2.link(() => InputController())
router2 = router2.link(() => AuthorizationController(context));
return router;
}
将cascade notation更改为频道中的普通链以解决游览问题:
@override
Controller get entryPoint {
final router = Router();
router.route("/auth/[:type]")
.link(() => InputController())
.link(() => AuthorizationController(context));
return router;
}