安全,轻松地将MySql数据从服务器传输到客户端

时间:2014-01-30 11:16:15

标签: json webserver dart dart-io

我的服务器端应用程序中有一个Dart,我不知道如何将MySql提供的地图转换为JSON类型的结构,将这些数据发送到客户端。
安全:无法进行Sql注入;
easy:只需要几行代码来转换数据,考虑到字符串包含字符串分隔符('或“),不允许简单的连接。
在客户端上,我解码一个JSON字符串并填充表单。 这是服务器例程:

 void handlePost(HttpRequest req) {
   HttpResponse res = req.response; 
    req.listen((List<int> buffer) {
     addCorsHeaders(res);  
     AsciiDecoder a = new AsciiDecoder();
     String s = a.convert(buffer); // contains key data in JSON-string
     Map data = JSON.decode(s);
     if (data.containsKey("key")){
       var r1 = data{"key"};      
       pool.query('select fi, la, age from person where keyT =' + r1).then((result) {
         result.forEach((row) {
             print("FirstName: ${row[0]}, lastName: ${row[1]}, Age: ${row[2]}");
             closeRes(res, JSONdata);
         });
       });
     }
     else closeRes(res, "NOK missing key");
   },
   onError: printError);
 }

我在哪里写print("FirstName: ${row[0]}, lastName: ${row[1]}, Age: ${row[2]}");
我写了一些代码,将MySql映射转换为某些东西,我可以在客户端转换为JSON-something。 在客户端我有这个:

 void getDataFromServer(){
   HttpRequest request = new HttpRequest(); // create a new XHR  
   request.onReadyStateChange.listen((_) {
     if (request.readyState == HttpRequest.DONE &&
        (request.status == 200 || request.status == 0)) {
       extractJson(request.responseText); // output the response 
     }
   });  
   request.open("POST", url, async: false);
   request.send(jsonData); // POST string like: {"key":"12345"}
 }

有人可以使用某些代码行,显示操作方法吗?或者给我看一篇有一些实例的文章?我正在运行最新版的Dart 我用(15年)在VBasic中编写桌面应用程序,现在尝试转换。

1 个答案:

答案 0 :(得分:1)

stackoverflow中找到了JSON编码的解决方案。将描述sql-table的类中的所有字段设置为mySql和serialize获取的结果。 Concat所有行。然后将字符串传递给客户端。

等待Nawaf Alsulami对问题注入部分的回答