gpt4 book ai didi

dart - 如何使用 Rikulo 流从客户端向服务器发送数据

转载 作者:行者123 更新时间:2023-12-03 04:22:01 24 4
gpt4 key购买 nike

我正在尝试使用 Rikulo 流,当我想将数据从客户端发送到服务器时遇到一些问题。假设我有一个注册表单,并且我想发送一个请求来检查该用户名是否已存在于我的数据库中。我采用了 MVC 模式,所以我希望 Controller 接收数据,然后使用 dao 类检查用户名是否存在。

在客户端我有这行代码

InputElement username = query('#username');
document.query("#submit").onClick.listen((e) {
HttpRequest request = new HttpRequest();

var url = "/check-existing-username";
request.open("POST", url, async:true);
request.setRequestHeader("Content-Type", "application/json");
request.send(stringify({"user": username.value}));

});

这是发送数据的正确方法吗?

这是我的服务器端代码

void main(){

Controller controller = new Controller();

var _mapping = {
"/": controller.home,
"/home": controller.home,
"/check-existing-username" : controller.checkUsername
};

new StreamServer(uriMapping: _mapping).start();

还有我的 Controller 方法

void checkUsername(HttpConnect connect) {
//How to access data received from client?
}

dao 类已经定义,所以我只想知道如何访问数据。

希望有人能帮助我。

最佳答案

由于您使用的是 POST,因此 JSON 数据将位于 HTTP 请求的正文中。您可以在那里检索它。 Rikulo Commons有一个名为 readAsJson 的实用程序。您可以按如下方式使用它。

import "package:rikulo_commons/convert.dart";

Future checkUsername(HttpConnect connect) {
return readAsJson(connect.request).then((Map<String, String> data) {
String username = data["user"];
//...doa...
});
}

Notice that reading request's body is asynchronous, so you have to return a Future instance to indicate when it is done.

关于dart - 如何使用 Rikulo 流从客户端向服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18769207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com