handle method

Future<void> handle()

Implementation

Future<void> handle() async {
  // resHeaders['Server'] = '${resHeaders['Server']}-${version}';
  resHeaders.forEach(res.headers.set);
  req.headers.forEach((name, values) => reqHeaders[name] = values.join(';'));
  Object ret;
  try {
    reqLength = req.contentLength;
    logger('[Req] $method $uri $reqLength', 'D');
    if (reqLength > reqLimit)
      throw Exception(
          'Content length ${reqLength}/${reqLimit} out of request limit!!!');
    var call = match(method, uri);
    ret = await callable(call);
    print(ret.toString());
    if (ret is Error || ret is Exception || ret.isNull)
      throw Exception(ret.toString());
    await write(ret);
  } catch (e, t) {
    var id = DartiveAids.timeId();
    logger('[$id]$e\n${t.toString().split('\n').first}', 'E');
    res.statusCode = HttpStatus.internalServerError;
    await write(Dartive.error('Server Error Id=$id !!!'));
  }
  // if (ws.isNotNull) return;
  await close();
}