小编jab*_*son的帖子

使用Dart,如何使用Future正确返回HttpResponse

我试图创建一个非常简单的http服务器做一件事.收到HttpRequest后,它会在本地数据库服务器上运行查询,并根据该查询返回一个字符串.

我正在学习Dart,而且我很难掌握期货.我以为我理解了它们,但是这个例子让我相信我真的不知道它们是如何工作的.所以,我不仅在寻找这个问题的解决方案,而且我也很乐意接受任何指示.

注意:这段代码是我一直试图完成的一个非常原始的例子,为了扩展到Stackoverflow社区,我尽可能地缩短/简化了它,同时保持问题的完整性.

这是我的server.dart代码

import 'dart:io';
import 'package:sqljocky/sqljocky.dart';


final connection = new ConnectionPool(host: 'localhost', port: 3306, user: 'root', password: null, db: 'server1');

main() {

  HttpServer.bind(InternetAddress.ANY_IP_V4, 9090)..then((server) {
    print("serving generic database query on localhost:9090");
    server.listen((request) {
      if (request.method == "GET") {
        request.response.write(getResults());
        request.response.close();
      }
      else {
        request.response.statusCode = HttpStatus.BAD_REQUEST;
      }
    });
  });
}


String getResults() {

  StringBuffer sb = new StringBuffer();
  sb.write("START--");
  connection.query("select name, email, zkey from users")
      ..then((results) {
    results.forEach((row) {
      sb.write(row.toString());
      print(row.toString());
    });
  });

  sb.write("--END");
  print(sb.toString());

  return sb.toString();
} …
Run Code Online (Sandbox Code Playgroud)

dart dart-io dart-async sqljocky

8
推荐指数
1
解决办法
574
查看次数

标签 统计

dart ×1

dart-async ×1

dart-io ×1

sqljocky ×1