Elixir 韦伯快速启动项目无法生成

我遵循了,但是命令mix deps.get&&mix compile--all--force&&./start.sh产生了以下输出: ** (Mix) Could not start application myweber: {:bad_return, {{Myweber, :start, [:normal, []]}, {:EXIT, {:undef, [{Cowboy, :start, 2, []}, {Weber, :start, 2, [file: '/Users/jonas/cod

如何用Elixir编写自己的流函数?

我已经编写了一个简单的Stream.unfold函数,当我这样调用它时,它运行良好: a = Stream.unfold({1,2,3}, &my_unfold_func) |> Stream.take(5) a = my_unfold_wrapper() |> Stream.take(5) 但是,我似乎无法找到一种实现包装器的方法,该包装器允许我直接调用我的函数,例如: a = Stream.unfold({1,2,3}, &my_unfold_func) |&

Elixir Phoenix:模板中字符串中的插值函数

我想在一组面包屑中显示一个链接(使用Slime进行标记) 这就很好了。但我想在上下文中显示它,并提供其他链接 # by concatenation = link("Projects > ", to: project_path(@conn, :index)) <> link(@project.name, to: project_path(@conn, :show, @project)) # or by interpolation #{link("Projects", to: p

在Elixir中生成运行总和或行总和

鉴于: 如何获得行和:[3,6,9,…,x] 要使用哪个Enum函数,或者如何使用列表理解来保存一个运行总和,目前还不清楚。我想说,最可读的方法是: data = [[1,2,3, ..., n],[1,2,3, ..., n],[1,2,3, ..., n], ...] # List with N rows of equal length 对于N列表的情况,需要使用递归: data |> Enum.zip() |> Enum.map(fn {v1, v2} -> v1

Elixir 创建地图时创建列表的列表

我写 列表如下所示 Enum.reduce(list, map, fn elem, map -> key=hd(elem) Map.put(map, key, List.wrap(Map.get(map, key)) ++ tl(elem)) end) 预期结果如下所示 ['B2', ['B1', 'B2', 'B3']], ['B2', ['A1', 'A2', 'A3']], 上面的代码确实产生了这个结果,但感觉异常难看 我觉得Enum.into可以用于更好的变体,但似乎我

Elixir 在Phoenix项目中,我应该在哪里定义helper方法?

在Phoenix项目中,我应该在哪里定义helper方法 我想定义像Rails这样的助手方法。 但我想知道应该在哪里定义helper方法 该方法用于模板、视图、模型和控制器。 我在模型中定义了following和import等方法。 是这样吗? 还是应该在视图中定义这些 # web/models/session.ex defmodule UserAuthenticator.Session do alias UserAuthenticator.User @doc """ ret

Elixir Guardian允许用户访问控制器,即使当前用户为零?

如果用户发送的令牌未过期,但该特定用户已不存在,Guardian仍允许用户访问控制器 我在current_user.ex中添加了{:ok,nil},它只是终止了连接,我认为这不是正确的方法,因为我需要向用户返回一些东西,比如错误。我不确定我应该在那里用什么 这是我的路由器: pipeline :authed_api do plug :accepts, ["json"] plug Guardian.Plug.VerifyHeader, realm: "Bearer" pl

如何为Elixir中的节点指定默认名称?

我正在使用Elixir编写一些分布式代码,但是,我必须不断传递--name来为我的节点分配一个名称。默认情况下是否有这样做的方法?我想在.elixirrc文件中设置一些内容,以便每个服务器始终具有相同的节点名 简短回答:不 详细回答:您可以动态地为节点命名,因此,如果您发现自己正在执行许多设置任务(设置cookie、命名节点等),您可以使用一个脚本来帮助您启动它。您需要Elixir v0.10.1(目前为master)来实现以下目的: # boot.exs :net_kernel.start([

Elixir 消息捕获句柄*回调灵丹妙药

我已经创建了一个参考长生不老药练习曲的genserver小应用程序 工作正常,当我启动服务器并执行GenServer.call.时,我得到了所需的数据 同时,我的应用程序也在接收来自其他生产者的消息,这必须被捕获,因为现在每当我的应用程序接收到下面这样的消息时,它都可以在shell上看到 iex(6)> subscription 0x7fdc83c0cdf0 ref 0x7fdc8403fc00 encode_message num 2 encode_message address top

Elixir 为什么可以';我不能用ibrowse吗未定义的函数::ibrowse.start/0

我试图在我的第一个Elixir应用程序中使用JSON API,但我很早就被卡住了。我决定使用来管理get请求,但是当从elixir shell调用HTTPotion.start时,我得到以下响应: {:error, {:ibrowse, {'no such file or directory', 'ibrowse.app'}}} 出于好奇,我决定看看是否可以直接调用ibrowse,但是调用:ibrowse.start返回 ** (UndefinedFunctionError) undefine

Elixir 如何中断(无限)流?

我正在使用该库,希望能够偶尔终止对流式API的调用以更改参数 我当前的代码如下所示: for tweet <- ExTwitter.stream_filter(track: terms) do process_tweet tweet end 对于tweet您可以抛出异常并捕获它: try do for tweet <- ExTwitter.stream_filter(track: terms) do process_tweet tweet if logi

Elixir 关键词列表的好处是什么?

在elixir中,我们有地图: > map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"} > map.a # = "one" > map[:a] # = "one" 我们还有关键词列表: > kl = [a: "one", b: "two"] # = [a: "one", b

Elixir 如何使用Postrgrex扩展来处理JSON数据类型

Postgrex项目页面提到了使用扩展对来自db的类型进行编码/解码的能力 我正试图从项目页面获取返回地图的代码,但我不确定扩展应该挂接到Postgrex的何处,如果有必要,我正在尝试在Phoenix web应用程序中这样做: defmodule Extensions.JSON do alias Postgrex.TypeInfo @behaviour Postgrex.Extension def matching, do: [type: "json"] def f

Elixir-动态调用私有函数

我找到了Kernel.apply/3,它允许通过将方法指定为原子来动态调用模块中的公共方法,例如result=apply(\uuuu模块,:my\u方法,[arg])转换为result=my\u方法(arg) 让我困惑的是调用私有方法的方法;给定如下代码: defmodule MyModule do def do_priv(atom, args) when is_list(args) do apply(__MODULE__, atom, args) end

Elixir 基于结构类型改变的分块列表

我有一个列表,我想根据从结构类型B到a的转换进行分块。例如,我有以下内容: iex(1)> defmodule A, do: defstruct [] {:module, A ... iex(2)> defmodule B, do: defstruct [] {:module, B ... iex(3)> values = [ %A{}, %A{}, %B{}, %B{}, %B{}, %A{}, %A{}, %B{} ] [%A{}, %A{}, %B{}, %B{}, %B

Elixir 凤凰城:从IEx控制台广播

我已经建立了一个小的聊天应用程序,如下所示: 并且无法确定如何向主题中的所有用户广播消息。在上面的应用程序中(没有像我现在使用的那样更新到v0.13),我将如何做到这一点?以下是我尝试过但没有成功的方法: Phoenix.PubSub.broadcast Chat.PubSub, "new:msg", "hello from the console" Phoenix.PubSub.broadcast Chat.Endpoint, "new:msg", "hello from the conso

Elixir 管理多对多关联

比如说,我有属于许多标签的Post模型: defmodule MyApp.Post do use MyApp.Web, :model schema "tours" do field :title, :string field :description, :string has_many :tags, {"tags_posts", MyApp.Tag} end # … end 保存帖子时,我会从multiselect字段获取标签\u ID列表,如下所示

Elixir phoenix框架部署问题

我正在尝试使用exrm和conform部署Phoenix应用程序。在本地Ubuntu上测试该版本。但当我在服务器上运行相同的程序时,会出现故障。我无法理解确切的原因 {error_logger,{2016,1,30},{7,45,44},“协议:~tp:register/listen error:~tp~n”,[“inet_tcp”,etimedout]} {{错误{{错误{错误{日志记录者,{{2016,1,30},{7,45,44}},{7,45,44},{{7,45,44},5}错误{7,

Elixir 在Phoenix框架表单中,我如何使用变更集将一个“属于”关系设置回null?

在Phoenix框架表单中,我的页面上有一个选择框,可以将一个属性值设置为nil <%= select f, :relation_id, Enum.into(Enum.map(@relations, fn p -> {p.name, p.id} end), [{"None", nil}]) %> 我从Ecto收到一个错误,该变更集无效,因为它需要一个整数。我可能会截取映射,将值设置为null,然后将更新后的映射传递到变更集中。但是有更简单的方法吗?我想你应该使用插

Elixir 这是一个尾部递归吗

我有以下代码片段: def flatten([h|t]), do: [h] ++ flatten(t) 我是fp领域的新手,想知道这是否是尾部递归 这不是尾部递归。为了运行最后一个表达式(++,列表串联),必须保留[h],对flatten(t)的新调用将产生一个新的堆栈帧,并且由于引用了[h],因此不能仅仅替换上一个堆栈帧 换句话说,通过尾部调用优化,顶层的函数调用将替换上一个堆栈。该函数调用中的任何表达式都会提前发生,并在调用它们时使堆栈增长 大多数尾部调用优化的枚举(包括尾部递归)都使用累

在Phoenix中创建和使用Elixir helpers模块

我在我的人造博客phoenix应用程序中创建了一组验收测试。它们之间有一些重复的逻辑,我想转移到一个助手模块来保持干燥 以下是目录结构: test/acceptance/post ├── create_test.exs ├── delete_test.exs ├── helpers.exs ├── index_test.exs └── update_test.exs 我想在helpers.exs文件中粘贴复制的验收测试逻辑。它看起来像: defmodule Blog.Acceptance.Po

Elixir 在一个十六进制包中包含外迁移或生成器

我需要发布一个简单的Elixir library/hex软件包,将一个表添加到父应用程序的数据库中。我应该创建一个复制到父应用程序中的迁移,还是应该考虑创建一个生成器?我认为生成迁移的混合任务是正确的方法 $ mix package.install 还有几个项目要求用户手动添加迁移,比如GuardianDb 要理解你的要求有点困难,但我相信我会考虑使用shell脚本来完成这项任务。我正在使用Elixir进行混合任务。我需要用文件访问包裹内容。我还不清楚你到底要什么。尽量让你的问题更清楚一点,你

Elixir 什么是组长

我试图配置出,什么是组长以及它与I/O模块的关系,但在internet上找不到任何有用的东西。谁能给我解释一下吗 《长生不老药1.2》(戴夫·托马斯)一书中有以下场景: 在第二个窗口中,他为什么要通过:erlang_group_leader?它有什么好处呢?: 返回评估函数的流程的组长的流程标识符 每个过程都是某个过程组的成员,所有组都有一个组长。组中的所有I/O都被传送到组组长。生成新进程时,它将获得与生成进程相同的组长。最初,在系统启动时,init既是自己的组长,也是所有进程的组长 以及:

Elixir 什么是“长生不老药”?

“长生不老药”代表什么 在这个从Phoenix生成的代码中提取的代码示例中,看起来var |>function_calla,b,c语法允许调用多个传递var作为参数的函数,但我不完全理解它是如何工作的 defmodule HelloPhoenix.PostController do use HelloPhoenix.Web, :controller # ... def update(conn, %{"id" => id, "post" => post_params})

Elixir Phoenix-将EXTO查询结果返回到特定客户端

我目前正试图设计一个方案,其中会发生以下情况 客户端A已订阅/连接到主题/频道T A以select查询的形式向T发送消息 只有A接收查询结果,没有其他订阅者 这甚至可以使用频道吗?我选择频道的主要原因是对websocket的出色支持——不过我对其他Phoenix解决方案持开放态度 是的,频道应该做你想要的工作。您可以使用push,将查询结果向下推送到发送查询的用户: def handle_in("new_query", %{"query" => qu

Elixir 在生产环境中运行混合任务

我有许多任务和作业,我希望能够在生产elixir应用程序上手动执行。目前,我通过在远程控制台中运行代码来执行这些操作。我试图通过使用/bin/my_app命令MyModule my_func运行它们,但在另一个Erlang节点使用资源时出错 我更喜欢使用/bin/my_app命令MyModule my_func样式,这样我就可以使用ssh运行bash脚本 建议在Elixir应用程序上运行远程任务的方法是什么?在生产环境中运行mix任务是不可能的,因为mix不是应用程序版本的一部分 但是,显然可以

Elixir List.flatte返回意外值

版本:1.2.2,错误: List.flatte([a,[b]])应返回([a,b])。但是, 在某些情况下不能正常工作。例如,List.flatte([11, [[12],13]])在需要([11,12,13])时返回“\v\f\r”。即使 List.flatte([10])返回“\n” 为什么会发生这种情况?如果有,解决方法是什么?实际上,它与列表无关。展平,效果很好。这只是将可打印字符打印为ASCII字符的问题。与许多编程语言相反,Elixir将字符表视为整数列表 hd [12, 13,

Elixir 生成受监督的进程以定期报告心跳

我正在尝试生成一个进程,该进程将每五秒钟发布一次HTTP请求,以向服务器报告其心跳。我的密码是: defmodule MyModule.Heartbeat do def start_link do spawn_link(fn -> :timer.apply_interval(:timer.seconds(5), __MODULE__, :beat, []) end) end defp beat do HTTPoison.post "http

Elixir 使用Phoenix的实时应用程序,无需JavaScript

我正在研究构建一个具有很多实时功能的应用程序 我很快浏览了各个频道。Phoenix是否有一些神奇的代码可以对我隐藏DOM更新逻辑?也许是一个包裹?我对编写JavaScript代码来更新/操作DOM不感兴趣。似乎有理由期望Phoenix可以在服务器端重新呈现模板,并通过通道发送更改后的DOM—这不可能吗 如果存在上述情况,可能存在某种东西可以将Phoenix的模板转换为客户端JavaScript视图,该视图可以采用Phoenix模板所采用的相同变量,然后呈现视图?这样,Phoenix就不必发送整个

Elixir 菲尼克斯:你有很多条件吗

我有以下型号: defmodule My.User do use My.Web, :model schema "users" do has_many :relationships, My.Relationship has_many :pending_friends, through: [:relationships, :friend] has_many :rejected_friends, through: [:relationships, :friend]

如何断言Elixir消息按顺序到达

我正在构建一个长生不老药模块,它以一定的顺序发送消息。我写了这样的单元测试 MyModule.send_msgs(self()) assert_received {:event, 1} assert_received {:event, 2} assert_received {:event, 3} 问题是,即使我洗牌assert\u接收的顺序,测试仍然通过 MyModule.send_msgs(self()) assert_received {:event, 2} assert_received

将原始元组保存到数据库-elixir

需要将原始元组保存到数据库中 价值观: conn.adapter = {Plug.Adapters.Cowboy.Conn, {:http_req, #Port<0.14529>, ranch_tcp, :keepalive, #PID<0.528.0>, "GET", :"HTTP/1.1", {{127, 0, 0, 1}, 2866}, "localhost", :undefined, 4000, "/click", :undefined, "campaign_

Elixir 长生不老药中的嵌套循环

给出这两个列表: l1=['a','b','c'] l2=[“Foo”、“bar”、“baz”] 对于l1中的每个项目,我希望对l2中的每个项目运行func 类似于: Enum.each(l1,&(fun1(&1,中的每个项目) 有没有一个简单的方法可以做到这一点?是的,你可以使用理解,这里有一个iex的快速示例: for abc <- ['a', 'b', 'c'], foobar <- ["Foo", "bar", "baz"] do IO.inspect "#{

如何使用Plug.Adapters.Test.Con在Elixir/phoenix中设置PUT请求主体

因此,我使用Elixir/Phoenix和ESPE测试框架进行了如下测试设置: let :response do resp = build_conn() |> put("/kites/#{id_function()}", [horizontal: "more", default: true]) Poison.Parser.parse!(resp.resp_body, keys: :atoms!) end 调用response()时,会出现如下错误: ** (Poison.Enco

Elixir 将代码点(或二进制)列表转换为字符串

我一直在做戴夫·托马斯的练习。我遇到过一个函数,它说要编写一个函数(出于某种原因称为caesar),将一个字符表和一个整数添加到字符表中的每个元素,如果它超过了“z”,则循环回到“a”,这样您就可以像这样调用它了 我的名单。凯撒('ryvke',13) 它应该返回一个字符串 我有一个映射列表并执行加法的函数,但它返回一个charlist,我不知道如何将其转换为字符串: defmodule MyList do def caesar(list, n) do Enum.map list

Elixir 从for循环存储GenServer结果

我需要在for循环中存储GenServer调用的最后一个结果。 我真的不知道该怎么做才对 def handle_info(:load_info, state) do infos = for info <- state.infos do {:ok, infos} = send(self(), {:info_link, info}) infos end {:noreply, %{state | infos: infos}} end def handle_info

Elixir从shoutcast获取元数据

我想做一个程序,将显示当前正在播放的歌曲从互联网广播流(SomaFM)。我正在使用Elixir中的HTTPoison库。但我没有得到回应。它只是挂着 我正在使用以下代码: HTTPoison.start url = "http://ice1.somafm.com/lush-128-mp3" headers = [{"Icy-Metadata", "1"}] with {:ok, %HTTPoison.Response{body: body}} <- HTTPoison.get(url, h

Elixir 从变更集中获取必填字段和可选字段

我在exto.schema中读到,通过这样做,我们可以得到字段和类型: Model.__schema__(:fields) Model__schema__(:types) 我有模块属性常量@必填字段和@可选字段 我们有没有办法从变更集或模式函数中获取@必填字段和@可选字段 如果要将必填字段和可选字段添加到变更集转换函数,请多谢: # using sigils list of words @required_fields ~w(field1 field2 field3) @optio

Elixir Phoenix多部分文件上载导致415种不支持的媒体类型

我正在进行多部分上传。其请求头如下所示: Accept:application/json,text/javascript Accept-Encoding:gzip, deflate, br Accept-Language:en-US,en;q=0.9 Connection:keep-alive Content-Length:733 Content-Type:multipart/form-data; boundary=----WebKitFormBoundary9Am5omyM263xjTB2 H

如何让Elixir Websockex订阅websocket?

我是长生不老药/二郎的新手。举个例子,我试图学习如何订阅websocket提要 我复制了Websockex基本示例: defmodule WebSocketExample do use WebSockex def start_link(url, state) do WebSockex.start_link(url, __MODULE__, state) end def handle_frame({type, msg}, state) do IO.puts "R

Elixir 处理phoenix中现有表之间的多对多关系

我有一个用elixir/phoenix制作的web应用程序。 我将围绕标题进行解释。 所以我在系统中有一个叫做角色的东西,还有一个叫做权限 角色通过中间表角色权限与权限有多对多关系 三者的模式大致如下: 角色 schema "roles" do # associations has_many(:users, User) many_to_many(:permissions, Permission, join_through: "role_permissions")

Elixir Can';t访问“中的参数密钥”;康涅狄格州;

我的应用程序中有以下内容: defp aaabbbcc(conn, params) do conn = Plug.Conn.fetch_query_params(conn) Logger.info("#{Kernel.inspect(conn[:params]["some_custom_params"])}") 例外情况: Plug.Conn does not implement the Access behaviour 行Plug.Conn.fetch\u que

Elixir 长生不老药凤凰框架下的时间比较

我想从用户那里得到一个日期输入,并比较(如果它至少是30分钟的未来)它是否是未来的,并将其保存到数据库中。 用户输入的日期如下2018-09-26 用户输入的时间如下16:00 所以我把它转换成天真的日期时间 def build_naive_datetime(date, time) do {:ok, datetime} = NaiveDateTime.from_iso8601("#{date} #{time}:00") datetime end 因此它返回~N[2018-09-26 1

Elixir =>;之间的区别是什么;还有:在长生不老药地图上?

在凤凰城框架中 def show(conn, %{"id" => id}) do json conn, Repo.get(User, id) end 匹配很好,但使用:符号的模式不匹配 def show(conn, %{"id": id}) do json conn, Repo.get(User, id) end 当我从测试调用以下代码时 conn |> get(user_path(conn, :show, user.id)) |> json_response(20

Elixir String.replace/4和Regex.replace/4之间有什么区别?

我在Elixir中第一次使用regex(Regices?),并发现了两个函数,乍一看,它们似乎是相同的,只是它们的参数顺序不同:和 它们都接受字符串、模式、替换和选项列表,并返回替换后的字符串 这两者有什么区别吗?在什么情况下我应该使用一个而不是另一个?是的,它们都使用字符串、模式和替换。区别在于,如果模式字符串存在于输入字符串中,字符串将用“替换字符串”替换字符串。 例如:String.replace(“abc”、“a”、“a”)—这将导致abc。它将查找搜索字符串“a”,并将该字符串替换为“

Elixir `调用UTC`DateTime`Timex.Timezone.get/2`时,`Timex.Timezone.resolve/3`中的FunctionClauseError`错误`

我有(我怀疑的是)UTC日期时间。我想将其转换为我的本地时间(该日期时间的时区名为America/New_York) 我试着跟随: 时区=时区.get(“美国/芝加哥”,Timex.now) # >时区。转换(日期时间,时区) # 为什么下面显示的第三个命令会引发错误 iex(1)> ~N[2019-12-02 16:27:18] ~N[2019-12-02 16:27:18] iex(2)> DateTime.from_naive(v(1), "E

Elixir 长生不老药插头:返回重定向302

我继承了一个用长生不老药写的项目。基本上它是一个API网关。在这种情况下,我需要执行从API网关URL到目标URL重定向到的URL的重定向。所以情况是这样的 对(Elixir中的API网关)>的请求转到我的服务器,它返回302并重定向到另一个URL 我已经编写了如下代码: def索引(%%{query\u string:query\u string}=conn,data)do 总站= case MyLib.index(数据,[],查询字符串)do {:好的,%HTTPoison.Response

上一页 1 2 ...  41   42   43   44    45   46   47  ... 下一页 最后一页 共 125 页