【问题标题】:How to integrate flutter app with node.js如何将 Flutter 应用与 node.js 集成
【发布时间】:2018-09-29 13:08:21
【问题描述】:

我正在尝试开发一个与 node.js 集成的颤振应用程序。但是我不知道如何实现它,任何人都可以帮助我解决这个问题

【问题讨论】:

标签: node.js flutter flutter-dependencies


【解决方案1】:

如果你创建一个 RESTful api 服务器,你可以用任何你想要的语言编写它,你的 Flutter 应用程序可以使用它来检索和发布数据。因此,只需创建一个 Node.js 服务器并通过 Flutter over http 向它发出请求。

以下是如何在 Flutter 中创建 HTTP 客户端并使用它连接到服务器端点并获得响应的示例:

//Import dart library
import 'dart:io';

_getUserApi() async {
  var httpClient = new HttpClient();
  var uri = new Uri.https('yourserverurl.com', '/your/endpoint/whatever');
  var request = await httpClient.getUrl(uri);
  var response = await request.close();
  var responseBody = await response.transform(UTF8.decoder).join();
  return responseBody;
} 

如果您将服务器配置为以 JSON 格式返回数据(这在 Node.js 中最常见),您将需要解析 JSON 响应并将其转换为您的应用程序使用的类型化表单。您可以通过自己编写构造函数或使用诸如 json_serializable 或 built_value 之类的 Dart 库来做到这一点。

Here 是一篇关于如何使用这些方法的非常好的文章。

反序列化 JSON 后,您可以在 Flutter 小部件中使用数据。

【讨论】:

  • 如果我想连接到在我的计算机上本地运行的服务器,uri 应该是什么??我尝试了我的 ipv4,它说 FormatException,地址应该是字母
  • 这只是你的休息端点的 uri,由你在你的 api 服务器中编程的任何东西定义。服务器 url 部分将是主机名。如果服务器在您的本地计算机上运行,​​您的服务器 url 将是 127.0.0.1 或 localhost。并且 uri 取决于您的服务器编程。例如,我的本地计算机上可能有一个 RESTful api 服务器,它被编程为在我访问 http://[serverurl]/api/v1/clients 时返回一个 JSON 客户端列表。在这种情况下,127.0.0.1 是我的服务器 url,/api/v1/clients 是我的端点。这有帮助吗?
  • 我试过了,我得到一个 Socket EXCEPTION 这是我的代码 var httpClient = new HttpClient(); var request = await httpClient.get('127.0.0.1', 3000, "/api"); var response = await request.close();错误我得到:SocketException:操作系统错误:连接被拒绝,errno = 111,地址 = 127.0.0.1,端口 = 39496
  • 啊哈,我明白了问题所在。显然在 Flutter 中,127.0.0.1 被路由到你的手机,而要获取 localhost,你需要使用 10.0.2.2。请为服务器 url 试试这个:10.0.2.2:<hostport>
  • 我尝试了指定的 url,当我在浏览器中执行 localhost:3000/api 时,它只打印 '_HttpClientResponse' 的实例我从我的 mongo 数据库中获取 json 响应,但我无法在我们可以在其他地方继续讨论吗
猜你喜欢
  • 1970-01-01
  • 2022-07-01
  • 2016-11-09
  • 1970-01-01
  • 2015-04-24
  • 2022-07-15
  • 2018-04-30
  • 1970-01-01
  • 2017-03-02
相关资源
最近更新 更多