如何使用 Phoenix Framework 获取数据?

How to fetch data using Phoenix Framework?

我有一台安装了 Phoenix Framework 的服务器。 现在,我正在尝试使用他们的 client JS library 获取从服务器发送的数据 但我被困在中间,没有 documentation/tutorial,无论如何在客户端实现它 运行。

过去几个小时我一直在挖掘,但不幸的是几乎没有关于我正在寻找的资源。

目前,我有一个 HTML/JS 页面,我想在其中预览使用客户端库获取的数据。

the guides 中很好地介绍了机制。

连接到频道后,您可以执行以下操作:

channel = socket.channel("yourchannel", {});
channel.join().receive("ok", successFunction);
channel.on("all_users", function(users) { /* do something with users */ });
channel.push("get_all_users", {});

在您的用户频道中:

def handle_in("get_all_users", payload, socket) do
  users = Repo.all(User)
  users_json = Poison.encode!(users)
  {:reply, {:ok, users_json}, socket}
end

基本上,您的频道 "handle_in" 处理来自客户端的请求类似于控制器处理 HTTP 请求的方式。您对传入的请求进行模式匹配,然后在有回复时回复结果。如果您不需要回复,您可以 return {:noreply, socket} 而不是 {:reply, {:ok, reply}, socket}.