【问题标题】:Creating Flutter Web Server that connects to an SQL server创建连接 SQL 服务器的 Flutter Web Server
【发布时间】:2021-02-16 00:36:33
【问题描述】:

我想创建一个具有 SQL 连接的 Flutter Web 服务器。 就像在 PHP 中一样,我们可以像这样连接到 SQL 服务器:

// Connecting to DB
$conn = new mysqli($servername, $username, $password, $dbname);

// Checking connection error
if($conn->connect_error){
   die("Connection Failed: " . $conn->connect_error);
   return;
}

// Making query
$sql = "SELECT * from $table ORDER BY updated_at ASC LIMIT $limit";

// Getting the result
$result = $conn->query($sql);

// Checking result
if($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
     $db_data[] = $row;
  }
            
  // Send back the complete records as a json
  echo json_encode($db_data);
}else{
  echo "error";
}

// Close connection
$conn->close();

所以我在 Flutter 中寻找上述代码的等价物。

我在这里找到了有关如何制作 Flutter Web Server 的文档:https://dart.dev/tutorials/server/httpserver

但是当我试图找到关于“如何将 Flutter Web 服务器连接到 SQL”的解决方案时。我发现的只是 SQL 的 Flutter 应用程序,这不是我想要的。 甚至可以创建一个带有 SQL 连接的 Flutter Web Server 吗?

注意:我不是在尝试制作 Flutter Web Client。

【问题讨论】:

    标签: sql sql-server flutter flutter-web


    【解决方案1】:

    你基本上可以用这样的东西在你的手机上创建一个 HTTP 服务器:

    void main() async {
      var server = await HttpServer.bind(
        InternetAddress.loopbackIPv4,
        4040,
      );
      print('Listening on localhost:${server.port}');
    
      await for (HttpRequest request in server) {
        handleRequest(request);
      }
    }
    
    void handleRequest(HttpRequest request) async {
      // do your database stuff here
      request.response.write('data you got from db');
      await request.response.close();
    }
    

    现在,对于所有 sql 处理,您可以使用 Dart 和 Flutter 客户端的任何功能,例如 sqflite。您不需要使用专门为服务器端 dart 制作的库,因为需要完成的工作是相同的。

    您可以使用 flutter web 在浏览器上运行 Flutter web,因此您可以将其用作服务器,但这不是一个好主意,因为 Flutter 不是为完成这项工作而设计的,但更好的解决方案是可以使用其他 Dart(不是 Flutter)框架,例如 Aqueduct,它们专门设计为后端框架。希望对您有所帮助。

    【讨论】:

    • 感谢您的回答。那么这是否意味着我们无法将我们的计算机上的服务器设置为 localhost?因为我一直在寻找在电脑而不是手机中制作服务器的方法
    • @zk_regen 我已经编辑了我的答案以更好地涵盖您的问题。
    猜你喜欢
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 2017-01-06
    相关资源
    最近更新 更多