控制器指南

欢迎使用 Finch 控制器指南!本指南将引导您完成在 Finch 应用程序中创建和使用控制器的步骤。无论您是经验丰富的开发人员还是刚刚起步,Finch 都提供了一套强大的工具来简化服务器端 Web 应用程序开发。

什么是控制器?

Finch 中的控制器是处理 HTTP 请求的类。它负责处理请求并生成响应。控制器用于组织相关的请求处理逻辑,可以与路由关联以处理传入的 HTTP 请求。

创建控制器

要创建控制器,您需要扩展 Controller 类。以下是如何创建简单控制器的示例:

import 'package:finch/finch_route.dart';

class MyController extends Controller {
  MyController();

  @override
  Future<String> index() async {
    return rq.renderString(text: 'Hello World');
  }
}

在此示例中,我们创建了一个名为 MyController 的控制器,它扩展了 Controller 类。我们还重写了 index 方法来处理请求并生成响应。当向与此控制器关联的路由发出请求时,将调用 index 方法。

使用控制器

要使用控制器,您需要将其与路由关联。可以通过设置 FinchRoute 类的 controller 属性来实现。以下是如何使用我们之前创建的 MyController 的示例:

FinchRoute(
  path: '/',
  controller: MyController(),
);

在此示例中,我们创建了一个匹配根路径(/)的路由,并将其与我们之前创建的 MyController 关联。当向根路径发出请求时,将调用 MyControllerindex 方法来处理请求并生成响应。

注意:

index 函数是控制器的默认函数,您可以为函数使用任何名称并在路由定义中使用它。例如:

class MyController extends Controller {
  MyController();

  Future<String> myFunction() async {
    return rq.renderString(text: 'Hello World');
  }
}
FinchRoute(
  path: '/',
  controller: MyController(),
  index: MyController().myFunction,
);