dart - 渡槽忽略控制器
问题描述
我有两个控制器,一个资源,另一个正常。它们在同一个线程中,并且都必须运行。
我故意在普通控制器中插入一个突然返回,以确保它被简单地忽略。
常规控制器:
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
(如果你想相信的话,你可以在里面printfrouter.route("/auth/[:type]")
:)),但它适用于返回的对象而不是 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;
}
将级联符号更改为通道中的普通链以解决游览问题:
@override
Controller get entryPoint {
final router = Router();
router.route("/auth/[:type]")
.link(() => InputController())
.link(() => AuthorizationController(context));
return router;
}
推荐阅读
- navigation - MapBox 导航模块无法在 Android 上编译
- bash - 将函数局部变量导出到环境
- primefaces - 具有多个目的地的 Primefaces DragDrop DataTable
- php - 我有更改水印宽度的问题
- c# - 自定义 ConfigurationBinder.Bind 方法以绑定复杂属性
- wordpress - 保存之前修改元数据的哪个钩子(WooCommerce 产品)?
- javascript - 通过 guid 删除事件处理程序
- javascript - 将目录的文件名读取为数组,并通过 Xampp / Javascript 在网页中使用这些名称
- php - php如何将整数添加到列中值的末尾
- xilinx-ise - 在 w10 中编程 Spartan6 eFUSE 密钥