start method

Future<void> start()

Starts the server

Implementation

Future<void> start() async {
  var server = await HttpServer.bind(
    InternetAddress.loopbackIPv4,
    port,
  );

  _plugins.forEach((plugin) {
    plugin.init(this);
  });

  print('Listening on localhost:$port');

  await for (HttpRequest request in server) {
    for (var route in _routes) {
      if (_matchRequest(request, route)) {
        var req = Request(
            request: request,
            params: _requestParams(request, route),
            body: await Request.decodeBody(request));
        var res = Response(
          response: request.response,
        );
        for (var plugin in _plugins) {
          res = plugin.run(req, res);
        }
        route.handler(req, res);
        break;
      }
    }
  }
}