你是如何用长生不老药获得hostbyname的
似乎没有一个受支持的API,这两个解决方案似乎围绕
Erlang's Inet
使用系统(hostname)将Fork转换为shell
Elixir的一般原理是,如果标准erlang库中存在解决方案,则没有理由简单地使用Elixir包装器复制该解决方案,除非您打算以某种方式提供附加功能
或者换句话说,erlang库是本地的
iex(2)> :inet.gethostbyname('www.google.com')
{:ok, {:hosten
我想从Unix域套接字(SOCK_流)读取消息,但我很难找到一个在Elixir中这样做的工作示例。我一直试图使它与来自Erlang的procket库一起工作,但除了麻烦之外,我什么都没有
谁能给我看一个在Elixir中从unix域套接字读取数据的工作示例吗?是一个很好的示例,使用
open函数从连接地址(IPv4、IPv6或unix域套接字)获取文件描述符的元组{stdin、stdout}
编辑:此处用于初始化端口,但使用http://elixir-lang.org/docs/stable/el
标签: Elixir
phoenix-frameworkecto
查看数据库中条目数的最快方法是什么?我想在我的帖子/索引视图中查看帖子的数量
假设我在数据库中保存了一个帖子模型和一堆帖子。在Rails中,我可以在视图文件中执行以下操作:
<h1><%= @posts.length %> Posts</h1>
帖子
或
帖子
或
帖子
Phoenix Framework/Elixir等效物是什么?如果您已经使用Repo.all将帖子加载到控制器的内存中,您可以使用length/1来计算列表中的项目数。这相当于Ruby
我发现自己经常写这样的模式,我觉得这并不理想:
Enum.filter(my_list, fn e ->
case e do
{:ok, x} -> true
{:error, y} -> false
end
end)
|> Enum.map(fn e -> {:ok, something} = e; something end)
其中,我的_列表是由返回{:ok,x}或{:error,y}的某个函数创建的
当我想忽略错误时
标签: Elixir
phoenix-frameworkplug
我很难找到一个简单的例子。我没有使用凤凰FWIW,只是插上插头
defmodule Unauthorized do
defexception message: "not authorized", plug_status: 401
end
defmodule Foo do
use Plug.Router
plug :match
plug :dispatch
get "/" do
send_resp(conn, 200, "heyyyo")
end
get
如何在中定义名为的函数?显而易见的方法会产生语法错误:
iex(1)> defmodule MyModule do
...(1)> def in do
...(1)> end
...(1)> end
** (SyntaxError) iex:2: syntax error before: do
这是不可能的,因为in是一个保留字吗?in不能直接与def一起工作,因为它是一个运算符,但是Elixir中的函数可以有任何可以转换为原子的名称,而:in肯定是一个有效的原
根据尼科马库斯(60-120 CE)自然数分类方案,确定一个数是完美的、丰富的还是不足的
希腊数学家尼科马库斯(Nicomachus)设计了一种自然数分类方案,根据自然数的等分和,将每一个自然数唯一地划分为完全数、丰富数或不足数。等分总和定义为一个数的因子之和,不包括该数本身。例如,15的等分总和为(1+3+5)=9
完美:等分总和=数字
6是一个完美的数字,因为(1+2+3)=6
28是一个完美的数字,因为(1+2+4+7+14)=28
充足:等分总和>数量
12是一个丰富的数字,因为(1+2
标签: Elixir
tokenphoenixguardian
我正在为注册/登录创建一个API。我正在使用guardian,~>1.0为我的注册生成jwt令牌。现在,当我在我的文件夹结构中创建一个监护人模块时,我将在代码中向您显示。我还在我的cofig.ex中传递了密钥
如果您需要任何其他信息,请告诉我
现在,当我尝试在我的邮递员端点中传递这个时,它给了我一个错误
{
"user": {
"email": "siddhant24333@gmail.com",
"password": "Radiohead",
我有两个这样的模式:
schema "projects" do
field :title, :string
field :is_shared, :boolean
timestamps()
end
schema "cards" do
field :title, :string
field :type, :string
belongs_to(:project, Project)
end
from(c0 in Card,
left_join: p1 in Project,
我想通过我的长生不老药代码执行一个程序。对给定字符串调用shell命令的方法是什么?是否有非特定于平台的内容?您可以在中查看。例如,cmd(Command)->string()应该是您要查找的内容。我无法直接链接到相关文档,但它位于系统模块下
cmd(command) (function) #
Specs:
cmd(char_list) :: char_list
cmd(binary) :: binary
Execute a system command.
Executes command
我曾尝试使用phoenix framework创建一个web应用程序Elixir,我正在遵循github()的官方教程
当我执行创建应用程序的命令时,收到一条错误消息。我不明白我在这里错过了什么。你能帮我吗
e.g.
mix phoenix.new photo_blog /home/johndoe/
mr.black :) > mix phoenix.new photo_blog /home/johndoe/
* creating /home/johndoe/photo_blog
*
在我的mix.exs中只在deps中指定依赖项,而不在应用程序中指定运行时依赖项,何时才合适
我原以为applications是在启动我自己的应用程序之前需要启动的实际应用程序,但我遇到了一个问题,exrm没有放入Jazz库(我认为它只包含纯函数)直到我在应用程序中加入:jazz一个OTP应用程序更像是一个组件—一组可以(但不需要)运行某些进程的模块和函数。如果OTP应用程序没有启动自己的监控树,则称为库应用程序。无论哪种方式,如果在运行时使用某些libs函数,则需要将其指定为运行时dep
相反
假设我在一台4核CPU机器上
如果我在elixir VM中运行以下操作:
1..4 |> Enum.map fn(x) -> spawn(computationally_heavy_process) end
这是否使用了我机器的全部4个内核。每个计算繁重的进程中都有一个?elixir虚拟机就是Erlang虚拟机,它调度生成的进程如何分配给机器CPU。你没有直接的控制权。但是,在运行自己的代码之前,通过发出:observer.start(),您可以使用图表的可视化来查看4个调度程序
标签: Elixir
phoenix-frameworkecto
在凤凰城改变外胚层模型的正确方法是什么
到目前为止,我已经创建了一个Post模型,其中包含一个title和一个content字符串字段。我将资源添加到路由器以创建和查看帖子。
现在我想在我的模型中添加一个author字段。
到目前为止,我所做的是:
我创建了一个迁移
mix ecto.gen.migration add_author_to_post
在我插入的迁移文件中
alter table(:posts) do
add :author, :string
end
并使用mix-exto
定义映射有两种不同的语法:
map = %{:a => 1, :b => 2}
#=> %{a: 1, b: 2}
map = %{a: 1, b: 2}
#=> %{a: 1, b: '2}
在定义地图时,按如下方式使用这两种方法:
map = %{:a => 1, b: 2}
#=> %{a: 1, b: 2}
但按其他顺序使用会引发错误:
map = %{a: 1, :b => 2}
#=> ** (SyntaxError) iex
我正在使用,并且我正在尝试使用来自的指令将请求主体作为流来读取。
因为那里的代码是用Erlang编写的,所以我必须对其进行调整,使其在Elixir中工作:
def read_body(max_length, client, acc) when max_length > byte_size(acc) do
case :hackney.stream_body(client) do
{:ok, data} -> read_body(max_length, clien
Elixir中调用Erlang函数的格式是什么
具体来说,如何在iex中调用函数,以及在何处可以找到Erlang中可用的模块和函数列表。首先在中找到要调用的模块和函数
例如,要调用random uniform,您可以查看random模块并找到uniform\0函数
要在Elixir中调用它,请使用格式,:module.function(),例如
iex(1)> :random.uniform()
0.7230402056221108
对于不带任何参数的函数,括号是可选的。iex中的自动完
为什么不推荐使用长生不老药的GenFsm行为
我想用GenFsm行为实现有限状态机。
我认为Agent不足以描述有限状态机。
因为,Agent不适合描述从相同输入返回不同值的每个状态。请参阅相关提交:
基本上,您现在可以直接从OTP使用:gen_fsm,而无需使用长生不老药包装 Elixir核心团队认为这太令人困惑了,建议开发人员寻求其他解决方案
三天前,我在它周围写了一个长生不老药包装,并把它推到hex.pm,名为gen_fsm。这是github页面:如果您想查看它。:gen_fsm在Erla
我对长生不老药和凤凰框架的世界很陌生。我正试图学习FirehoseProject教程,但在使用Exto查询原始SQL时遇到了问题。教程说这应该可以:
defmodule Queries do
def random do
query = Ecto.Adapters.Postgres.query(
Repo,
"SELECT id, saying, author from quotes ORDER BY RANDOM() LIMIT 1",
[])
%Postgrex
标签: Elixir
phoenix-frameworkphoenix-channels
简单的问题,是否可以从控制器向所有活动频道广播
例如,这里是我的控制器:
# Controller
defmodule Rumbl.DiscussionController do
use Rumbl.Web, :controller
def blast(conn, _params) do
Rumbl.Endpoint.broadcast("room:*", "push_notifications", %{message: "broadcast coooyt!!"
调用不接受任何参数的函数时,使用或匹配括号的约定是什么
function1(aaa) |> function2() |> function3() |> function4(bbb)
# or
function1(aaa) |> function2 |> function3 |> function4(bbb)
我认为,在这方面还没有公约
赞成
Elixir编译器警告调用链外没有括号的函数
使用局部变量重写不带括号的方法调用存在风险
_
对立面
默认情
标签: Elixir
phoenix-frameworkelixir-mix
在我的Phoenix应用程序中,我遇到了一个问题,mix似乎无法找到我的一个依赖项的依赖项。。。让我把它分解一下
我在mix.exs中添加了一个名为opentok的dep,并运行了mix-deps.get-这一切都很好,已经安装,添加到mix.lock,等等。但是,当我运行mix-deps.compile时,我收到了一些与依赖关系相关的消息。。。例如:
DEP jwt
mv: /Users/user/projects/phoenix_app/deps/opentok/deps/jwt/eb
我有一个两级嵌套映射,如何更新第二级上的每个值?现在我正在这样做:
items = Enum.map(items, fn(a) ->
a.items2 = Enum.map(a.items2, fn(a2) ->
Map.put(x2, :some_key, 123)
end)
a
end)
错误:
cannot invoke remote function "a.items2/0" inside match.
我基本上知道这意味着
尝试将字符串解析为浮点时出现以下错误:
case insert_product_shop(conn, existing_product.id, existing_shop.id, String.to_float(posted_product["price"])) do
错误:
20:45:29.766 [error] #PID<0.342.0> running Api.Router terminated
Server: 172.20.10.2:4000 (http)
Request
将以下SQL查询转换为有效的EXTO查询时遇到问题:
挑选*
从文件单元模块
文件名在哪里=
选择f.file\u id
从文件中选择f
在f.file\u id=fm.file\u id上以fm形式左键连接文件\u模块
其中f.storage_id='20:1:0:86d:1591:c89c:512:de52'和fm.name='bruteforce'
按f.version DESC订购
限制1
我认为应该把这个问题一分为二。以下是我尝试过的:
q1=
文件
|>其中[f],f.storage
假设我正在测试一个属于Utils模块的函数,如下所示
defmodule Test do
alias Module.Utils
test "test 1" do
Utils.some_function?(...)
end
test "test 2" do
Utils.some_function?(...)
end
end
我是否可以将该函数重构或简化为:
import Utils.some_function as test_func()
因此,我不必编
标签: Elixir
phoenix-frameworkecto
我有用户和联盟他们通过用户联盟相互联系。非常基本的设置
但现在我试图查询与特定用户有关联的联盟。因此,如果用户A与联赛A有关系,但与联赛B没有关系,我想在查询联赛时只查看联赛A
这是Rails似乎是一种更简单的方法的情况之一。在rails中,这将是:@leagues=current\u user.leagues
`
以下是我目前的尝试:
def my_leagues(conn, _params) do
current_user_id = Coherence.current_u
当我尝试获取依赖项(mix deps.get)时,我收到以下错误:
更新EXTO(十六进制软件包)
检查包()
取回的包
**(混合)解压缩内部tarball失败:参数无效
我正在使用Windows 10。我假设您正在使用Windows 10的WSL
您必须将项目移动到WSL环境中的一个文件夹中,即
您的项目位于如下目录中:
C:/Users/UserName/Documents/Projects/project-name
/home/user-name
将其移动到如下目录:
C:/Us
我即将发布myhtmlex库的0.2.0。
但是我在测试我的新软件包版本时遇到了问题,因为测试应用程序没有生成应用程序文件
为了测试我的集成,我编写了一个脚本,在测试应用程序中测试我的十六进制版本
您可以在此处查看来源:
重现这一点的步骤如下:
构建十六进制包mix hex.Build
解压缩生成的tar归档文件
使用{:myhtmlex,路径:“../localtararchive”}
构建测试应用程序mix compile,但在以下情况下失败:
==> myhtmlex
Compili
假设我在Elixir中有一个严格递增的整数列表,当这个数字大于5的倍数时,我想将其分解为子列表。我尝试使用chunk_by,但我得到了以下结果:
Enum.chunk_by([300, 301, 304, 305, 306, 309, 310, 311, 312, 313, 314,
315, 316, 317, 319, 320], fn(x) -> rem(x, 5) == 0 end)
[
[300],
[301, 304],
[305],
[306, 309]
我有一个项目world\u app,我已将其作为依赖项包含在hello\u app中(如果相关,我已将其作为本地依赖项包含)
世界_应用程序有一个具有此配置的config.exs
config :world_app, some_config: "config_string"
当我试图在hello\u app中获取world\u app中定义的配置变量时,出现了我的问题(我在hello\u app中运行了iex-S mix)
然而,当我在世界应用程序中执行相同的操作时,我可以看到变量
iex(1
我在/lib/Mix/tasks/start.ex中为我的项目创建了新的Mix.Task
defmodule Mix.Tasks.Start do
使用Mix.Task
def run(551;),do:IO.puts(“你好,世界!”)
结束
现在,它可以像这样从控制台运行:
mix start
但是我得到了透析器错误,关于'Elixir.Mix.Task'行为的回调信息不可用。这意味着什么?如何修复?看起来我没有为透析器添加(PLT)选项。
在我的情况下,“Elixir.Mix.Task”
在elixir中,如果调用spawn来创建流程,但没有将流程实例存储到变量中,那么如何再次检索该PID的实例
我知道我可以使用Process.list(),它将返回当前节点中运行的所有进程,但是否有方法检索特定PID的实例?最简单的方法是为进程设置一个名称,然后使用进行检索。最简单的方法是存储PID以备将来使用,或者为进程命名,以便您可以通过该唯一名称(在给定节点中是唯一的。除非您全局注册,否则它在整个erlang网络中是唯一的)。因此,如果我没有命名PID,则无法检索它?如果您知道PID整数值
我目前正在尝试用Elixir构建一个小的web API,它需要一些内存状态。简而言之,用户第一次使用API时就启动了某个业务流程,以后可以继续进行进一步的API调用
对于这一点,我已经看到最好的方法是创建一个GenServer,将状态存储在那里,然后通过PID使用进一步的API调用
当我试图搜索如何将PID字符串化,以便在我找到的每个API调用中返回它时,它说:
PID不能保证在回收时是独一无二的
所以我的问题是:对于这种情况,什么是最好的方法?通常是如何解决的?可用于创建唯一标识符:
iex(
标签: Elixir
phoenix-frameworkplug
我注意到,Plug.ErrorHandler的handle\u errors回调中的send\u resp生成的响应不会通过其他插件
例如,我在handle\u error中构建了一个JSON响应。但是这个JSON响应不会通过我的JSONHeaderPlug和CORSPlug。这带来了很多麻烦
特定症状,如缺少这些基本HTTP标头:
access-control-allow-credentials: true
access-control-allow-origin: *
access-contr
标签: Elixir
phoenix-frameworkecto
我有两个表格:作业和报告。制作一份报告来保存任务的统计信息。因此,每次创建或更新任务时,都必须不加区别地更新所有报告。我是这样做的:
Multi.new()
|> Multi.insert(:assignment, assignment_changeset(params))
|> Multi.update(:update_reports, update_all_reports())
现在,每当我创建或更新任务时,这会给服务器带来巨大的损失,因为有太多的报告需要更新。因此我经历了超时
我正在尝试获取:amount字段的值。并以此来计算报价。所以基本上我不能得到数量的值
任何帮助都将不胜感激
schema "loans" do
field :amount, :integer
field :email, :string
field :isHigher, :boolean, default: false
field :names, :string
field :offer, :integer, default: 0
field :phoneNumber, :
假设在我的路由器.ex中,我有:
scope "/api" do
get "/test", SomeController, :test
end
现在,我想动态配置整个应用程序的根路径,这样它就不会从/api/test响应,而是从/context/api/test响应
配置端点url参数似乎只会更改url的生成。您可以尝试在url配置中调整路径配置。如果您这样设置,它“应该”工作:
您可以尝试在urlconfig中调整path配置。如果您这样设置,它“应该”工作:
事实并非如此。如前所述,它
我唯一的猜测是,它是为了验证它是否是一个结构。否则,%User{}=User会做什么
def change_user(%User{} = user) do
User.changeset(user, %{})
end
它来自凤凰框架和各种发电机等
提前感谢。是的,这将验证输入是否可以匹配到/是%User{}结构,而不是其他
它的要点是识别bug(通过静态程序分析)或强制运行时错误/崩溃,这样您的程序就不会做任何有害的事情(希望如此)。如果您将其更多地看作类型提示,它可能会有所帮助。虽然这是一
我有这些资源。它为我提供如下路径:/api/v1/rooms/:\u room\u id/users/:user\u id
如何删除“房间id”之前的下划线
这样的分离是好的解决方案:
resources "/rooms", RoomController, only: [:show, :update, :delete], param: "room_id", name: "" do
resources "/u
标签: Elixir
phoenix-frameworkelixir-mix
我编写了以下mix.exs以将Phoenix应用程序作为tar ball发布,参考mix.Tasks.release的“步骤”部分
当我运行MIX_ENV=qa MIX release my_app时,它在_build/qa/rel/my_app下创建了一个种子目录,但当我提取生成的tar ball时,它不包含种子目录
如何重写mix.exs以将此目录插入tar球
Elixir版本是1.11.3
注意:已发布在Elixir论坛上。查看for mix.release,它似乎只在编译版本时从特定目录
我正在调试一个包含80多个字段的结构。我试图找到一种方法来为这个结构对inspect函数的输出进行排序。目前它是随机的,不可能以任何有意义的方式区分输出。我曾尝试实现Inspect协议,但一直遇到一些值无法转换为字符串的问题。当我将{item.field}字符串格式替换为{inspectitem.field}时,我得到一个错误,即Kernel.inspect/2与本地函数冲突。下面是代码示例:
defimpl Inspect, for: App.Record do
def inspect(r
Pheonix变化如此频繁,以至于我不确定我所做的是否正确
我正在尝试学习一些教程,它们都在编译完成后立即使用“mix phoenix.start”命令,这应该会启动服务器。(Github的问题页面上有一些讨论说,他们将用mix phoenix.server命令替换它,您必须手动执行某些操作,而不是真正遵循它。无论如何,这是在开发版本v0.8.0-dev中。我使用的是最新的稳定版本0.7.2)
尝试发出“mix phoenix.start”命令以启动服务器时出错
(应用程序名:PhoenixCr
标签: Elixir
phoenix-frameworkecto
今天,我使用phoenix框架创建了一个新项目,一个添加singup函数的项目。我现在的问题是,我不知道如何创建和验证确认字段,例如用户密码。我没有找到关于这个话题的任何东西
在我现在的代码下面,没有什么特别的
我的当前表单模板
<%= form_for @changeset, @action, fn f -> %>
<%= if f.errors != [] do %>
<!-- not interesting -->
我有以下两种型号:
schema "users" do
field :email, :string
field :crypted_password, :string
field :password, :string, virtual: true
has_many :exercise_entries, ExerciseEntry
timestamps
end
以及:
我在iex中运行了以下代码:
u = Repo.get(User, 1)
iex(8)
标签: Elixir
phoenix-frameworkelixir-poison
我想对两个模型进行编码,定义如下:
web/models/vote.ex
defmodule-LetsPlan.Vote-do
使用LetsPlan.Web,:model
别名LetsPlan。可用性
导入LetsPlan.Utils,仅限:[截止日期:1]
@派生{Poison.Encoder,仅:[:名称,:可用性]}
模式“投票”做什么
字段:名称,:字符串,null:false
属于:event,LetsPlan.event
嵌入了很多:可用性,LetsPlan.Availability
我必须解析一个xml文档,从xml节点提取一个整数
目前我有:
try do
Floki.find(node, "stat[type='jersey_num']")
|> Floki.text
|> Integer.parse
|> elem(0)
rescue
e -> nil
end
这很好,但我不喜欢拯救一切,我想做一些事情,比如:
Floki.find(node, "stat[type='jersey_num']")
|>
出于自我教育的目的,我试着学习长生不老药,并在GenStagelibrary周围绞尽脑汁
我阅读了文档,大部分都得到了它,但是对于我的特定领域,我有几个问题
我试图建立一个网页刮板,它应该每天启动几次,并做一些刮板和后处理
第一个问题
因此,我最重要的生产者是一个阶段,它发出HTTP请求并将它们交给消费者
我如何处理这里的“等待6小时”
我应该只接受需求,而向消费者发送空事件吗?这听起来像是在浪费CPU周期
也许,GenStage对于此类事件不是一种正确的方法
第二个问题
有时我需要将事件返回到
我发现Elixir编译错误:具有多个子句和默认值的定义需要一个标题。用于以下函数。我不清楚为什么我会犯这个错误?对如何解决这个问题有什么建议吗
def stream(query, opts \\ []) do
initial_key = Keyword.get(opts, :initial_key, 0)
key_name = Keyword.get(opts, :key_name, :id)
chunk_size = Keyword.get(opts, :chunk
从API响应中获取标题后,我有以下字符串:
"\"Web Service Authentication\""
将这些字符串清理为以下内容的最简单方法是什么:
"Web Service Authentication"
您可以使用String.replace/3删除引号
"\"Web Service Authentication\"" |> String.replace("\"", "")
或String.trim/2如果引号仅在边上
"\"Web Service Authenticat
上一页 1 2 ...
53 54 55 56 57 58 59 ...
下一页 最后一页 共 125 页