问题标签 [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.

0 投票
1 回答
454 浏览

elixir - HMAC、Elixir、Plug.Conn(尝试多次调用 read_body)

我正在努力解决一个问题,即在 Plug.Parsers.JSON 将其放入管道之前,某些东西正在读取 http 请求的正文。正因为如此,json 插件中的 read_body 超时——你不能两次读取正文。

我们在管道的早期插件中有一个 HMAC 实现,在某些情况下它会读取主体。是否有关于如何使用主体在 Plug 中表现的模式?我的意思是,如果我们只能读取一次,并且必须在 Plug.Parsers.JSON 中对其进行解码,那么......它不会工作。

关注问题。生成 HMAC 哈希时是否需要包含请求正文?我的意思是,我觉得我们必须这样做,但我认为自己在这一点上是一个圆圈。

谢谢!

0 投票
0 回答
87 浏览

android - Android studio 3.1.3 下载 kotlin-plug 失败

在此处输入图像描述

Android studio 3.1.3 使用 kotlin-plug v'1.2.60,总是拒绝连接:连接。有什么问题,我该如何解决?

0 投票
1 回答
135 浏览

heroku - 带有 Plug 和 Cowboy 的 Elixir:禁用漂亮的错误消息

我正在使用heroku-buildpack-elixir将应用程序部署到 Heroku。我的应用程序包含一个简单的 Plug/Cowboy 设置。我注意到当发生未处理的异常时,会出现一个很好的错误消息,显示堆栈跟踪和出现错误的代码行。

这对于开发环境来说是可以的,但是在生产环境中我不希望我的代码对访问者可见。如何禁用或覆盖默认行为?

我尝试在 Heroku 中将MIX_ENV环境变量设置为prod无效。

0 投票
1 回答
353 浏览

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 的内容。

任何人,请帮忙?

0 投票
1 回答
505 浏览

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”}})

任何人,请帮忙?

0 投票
1 回答
392 浏览

terminal - Phoenix:如何从控制台测试控制器动作?

我创建了一个新的控制器操作,我想从控制台对其进行测试以确保它有效。

iex -S mix phx.server在终端中运行后如何执行操作?在我看来,为了做到这一点,我需要创建一个conn结构以及一个user结构(因为我使用的是 Guardian)。

我的控制器代码如下所示:

如何new_action从 IEx 进行测试?

0 投票
1 回答
254 浏览

elixir - 使用 HTTPoison 向 Plug 路由器发出的 POST 请求失败

我正在尝试使用 HTTPoison 向 Plug 路由器发出 POST 请求。我的 GET 请求成功,只有 POST 失败。我不确定问题是 Plug 还是 HTTPoison:

和客户:

我得到的响应是 500。我不知道为什么,因为路由器中的路由配置为接受 POST。有谁知道我做错了什么?

更新

人们要求堆栈跟踪。没有一个。但这是 500 响应:

0 投票
1 回答
196 浏览

unit-testing - 处理大型查询错误并发送 413 响应

我有一个语音笔记上传功能。我正在编写测试,作为其中的一部分,我为较大的文件编写了以下测试,我希望它抛出 413 Entity too large 错误:

测试失败了:


我还尝试将其添加到我error_view.ex的列表中,希望它能够做出响应,但没有成功。如果我在错误的地方添加它有什么想法吗?

0 投票
1 回答
574 浏览

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

我究竟做错了什么?

0 投票
1 回答
362 浏览

elixir - 从 Plug.Router 转发选项到另一个 Plug.Router

背景

我有一个Plug.Router接收一些选项的应用程序。我需要通过这些选项将这些选项传递给其他插件,forward但我不知道该怎么做。

代码

这是主路由器。它接收请求并决定将它们转发到哪里。

正如您可能猜到的那样,这是行不通的。我希望我的forward呼叫访问father_opts此路由器正在接收,但我无法访问它们。

起初,我想到了以下代码片段:

但这不起作用,因为我不能将 aforward放入call.

那么我如何使用 实现我的目标forward