问题标签 [plug]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elixir - HMAC、Elixir、Plug.Conn(尝试多次调用 read_body)
我正在努力解决一个问题,即在 Plug.Parsers.JSON 将其放入管道之前,某些东西正在读取 http 请求的正文。正因为如此,json 插件中的 read_body 超时——你不能两次读取正文。
我们在管道的早期插件中有一个 HMAC 实现,在某些情况下它会读取主体。是否有关于如何使用主体在 Plug 中表现的模式?我的意思是,如果我们只能读取一次,并且必须在 Plug.Parsers.JSON 中对其进行解码,那么......它不会工作。
关注问题。生成 HMAC 哈希时是否需要包含请求正文?我的意思是,我觉得我们必须这样做,但我认为自己在这一点上是一个圆圈。
谢谢!
android - Android studio 3.1.3 下载 kotlin-plug 失败
Android studio 3.1.3 使用 kotlin-plug v'1.2.60,总是拒绝连接:连接。有什么问题,我该如何解决?
heroku - 带有 Plug 和 Cowboy 的 Elixir:禁用漂亮的错误消息
我正在使用heroku-buildpack-elixir将应用程序部署到 Heroku。我的应用程序包含一个简单的 Plug/Cowboy 设置。我注意到当发生未处理的异常时,会出现一个很好的错误消息,显示堆栈跟踪和出现错误的代码行。
这对于开发环境来说是可以的,但是在生产环境中我不希望我的代码对访问者可见。如何禁用或覆盖默认行为?
我尝试在 Heroku 中将MIX_ENV
环境变量设置为prod
无效。
cryptography - Elixir 中的加密异常
我已经配置了一个 elixir 应用程序并定义了管理路由。但是,我在尝试访问任何路线时收到以下错误。
(退出)引发异常:**(ArgumentError)参数错误(加密):crypto.hmac_nif(:sha256, {:system, "Zpumk6KLEY8Qx826qspHhYrpTpDswFzHL/64aJWqhPyYZQWbV3hWq+nUIPQRMwLn"}, <<48, 70, 98, 86, 85 , 68, 57, 56, 0, 0, 0, 1>>) (crypto) crypto.erl:925: :crypto.hmac/6 (plug) lib/plug/crypto/key_generator.ex:64: Plug.Crypto .KeyGenerator.generate/7 (plug) lib/plug/crypto/key_generator.ex:50: Plug.Crypto.KeyGenerator.with_cache/3 (plug) lib/plug/session/cookie.ex:88: Plug.Session.COOKIE .get/3 (plug) lib/plug/session.ex:75:匿名 fn/5 in Plug.Session.fetch_session/1 (plug) lib/plug/debugger.ex:195: Plug.Debugger.maybe_fetch_session/1 (插件)lib/plug/debugger.ex:150:Plug.Debugger.render/6(插件)lib/plug/debugger.ex:129:插件。调试器。catch /5 (my_app) lib/my_app_web/endpoint.ex:1: MyAppWeb.Endpoint.call/2 (plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/ 4
这是 lib/my_app_web/endpoint.ex 的内容。
任何人,请帮忙?
file-upload - 在 Elixir 中使用 Acr 将文件上传到本地
我正在使用 Arc.Definition( https://github.com/stavro/arc ) 将图像上传到本地存储。
我的 file_service.ex 如下:
但是,我收到一条错误消息,提示“Arc.Actions.Store.store 中没有函数子句匹配”。
堆栈跟踪如下:
** (FunctionClauseError) Arc.Actions.Store.store/2 (arc) lib/arc/actions/store.ex:8 中没有函数子句匹配:Arc.Actions.Store.store(MyApp.FileService, {%{binary : <<255, 216, 255, 225, 3, 48, 69, 120, 105, 102, 0, 0, 73, 73, 42, 0, 8, 0, 0, 0, 58, 0, 50, 1 , 2, 0, 20, 0, 0, 0, 198, 2, 0, 0, 15, 1, 2, 0, 10, 0, 0, 0, 218, 2, 0, 0, 1, 1, . ..>>,文件名:“image.png”}})
任何人,请帮忙?
terminal - Phoenix:如何从控制台测试控制器动作?
我创建了一个新的控制器操作,我想从控制台对其进行测试以确保它有效。
iex -S mix phx.server
在终端中运行后如何执行操作?在我看来,为了做到这一点,我需要创建一个conn
结构以及一个user
结构(因为我使用的是 Guardian)。
我的控制器代码如下所示:
如何new_action
从 IEx 进行测试?
elixir - 使用 HTTPoison 向 Plug 路由器发出的 POST 请求失败
我正在尝试使用 HTTPoison 向 Plug 路由器发出 POST 请求。我的 GET 请求成功,只有 POST 失败。我不确定问题是 Plug 还是 HTTPoison:
和客户:
我得到的响应是 500。我不知道为什么,因为路由器中的路由配置为接受 POST。有谁知道我做错了什么?
更新
人们要求堆栈跟踪。没有一个。但这是 500 响应:
unit-testing - 处理大型查询错误并发送 413 响应
我有一个语音笔记上传功能。我正在编写测试,作为其中的一部分,我为较大的文件编写了以下测试,我希望它抛出 413 Entity too large 错误:
测试失败了:
我还尝试将其添加到我error_view.ex
的列表中,希望它能够做出响应,但没有成功。如果我在错误的地方添加它有什么想法吗?
elixir - 如何在 Elixir 中插入管道?
背景
我有一个应用程序,它是一个带有牛仔的网络服务器并使用 Plugs。由于这个应用程序是继承的,除非我们重新制作整个应用程序,否则使用 Phoenix 是不可能的,这不会发生。
我的目标是不要将所有内容都放在一个巨大的文件中,而是要有几个插头并通过管道连接它们。
代码
假设我有一个主路由器插件,如下所示:
所以在这里我有两件事。endpoint 的 Route ,/check
如下所示:
一个 Plug 管道/dispatch
看起来像这样:
此管道解析参数,通知度量服务,验证请求,然后将其发送到正确的路由器,如下所示:
问题
这里的问题是没有任何效果。从字面上看,如果我启动应用程序并尝试访问最愚蠢的端点(/check
),代码就会出现错误:
我现在一整天都在阅读文档,这就是我所能得到的。该应用程序非常简单,几乎是插件的 hello world:
https://elixirschool.com/en/lessons/specifics/plug/
但MyApp.Web.Router
不是他们使用的那个。
在这里可以看到一个 MWE:
https://github.com/Fl4m3Ph03n1x/plug-pipeline-problem
我究竟做错了什么?
elixir - 从 Plug.Router 转发选项到另一个 Plug.Router
背景
我有一个Plug.Router
接收一些选项的应用程序。我需要通过这些选项将这些选项传递给其他插件,forward
但我不知道该怎么做。
代码
这是主路由器。它接收请求并决定将它们转发到哪里。
正如您可能猜到的那样,这是行不通的。我希望我的forward
呼叫访问father_opts
此路由器正在接收,但我无法访问它们。
起初,我想到了以下代码片段:
但这不起作用,因为我不能将 aforward
放入call
.
那么我如何使用 实现我的目标forward
?