问题标签 [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 投票
2 回答
563 浏览

elixir - Plug 路由器是否需要匹配/调度管道?

我有一个将请求转发到其他路由器的路由器模块。在这个路由器中,我有一个由plug(:match)和组成的管道plug(:dispatch)

在第二个模块中,我有相同的管道:


我在这里看到的问题是我似乎总是需要plug(:match)并且plug(:dispatch)在所有Plug路由器中。所以我有以下问题:

  1. 这真的有必要吗?
  2. 是否所有路由器都需要在具有路由的同一文件中具有管道?
0 投票
1 回答
1012 浏览

elixir - Phoenix 1.4 How to alias Routes.page_path in a Plug

I've tried a couple different iterations but I keep getting this error when compiling:

My Code:

It's a little different in Phoenix 1.4, tried referring to documentation here https://hexdocs.pm/phoenix/Phoenix.Router.html but still no luck.

0 投票
1 回答
92 浏览

elixir - 将 args 从自定义插件转发到第二个插件

我有一个看起来像这样的自定义插件:

但是,我需要能够传入错误处理程序。我目前这样做:

我宁愿做这样的事情:

并像这样或等效地把它传递到我的插件中:

如何将 args 从我的自定义插件传递到其内部调用的插件?

0 投票
1 回答
28 浏览

phoenix-framework - 困境:我应该使用模块插件还是功能插件:Phoenix

我需要在不同的模块上重用一个功能插件,但这样做似乎有点多余。模块插件是更好的方法吗?或者我如何重用功能插件?

0 投票
1 回答
178 浏览

elixir - 如何在运行时调用 Plug.Router 宏定义的路由?

我可以手动构建一个conn然后像函数一样调用它们吗?如果你不明白“他们”是什么意思,请看下面的代码。

例如,定义一条路线/ping

我知道可以用中的conn函数来完成use Plug.Test,但是它是基于HTTP Client,而不是运行时函数调用,效率太低。

0 投票
0 回答
613 浏览

elixir - 如何测试设置 404 状态以及 Phoenix 重定向的插件

我正在尝试测试下面的插件在未找到 site_id 时是否返回 404。一切都在浏览器中运行,但测试抛出异常。

我的插头:

我的测试目前看起来像:

这是我得到的例外:

这里的最佳做法是什么?我应该在我的插头中呼唤凤凰城吗?任何帮助或建议都会非常棒。

谢谢你。

0 投票
1 回答
347 浏览

elixir - 如何使 Plug.ErrorHandler 和其他 Plug 同时工作?

我注意到send_resphandle_errors回调中生成的响应Plug.ErrorHandler不会通过其他插件。

例如,我在handle_error. 但是这个 JSON 响应不会通过我的JSONHeaderPlugand CORSPlug。这带来了很多麻烦。

具体症状,例如缺少这些基本的 HTTP 标头:

有没有办法让响应以handle_error与正常响应相同的顺序通过其他插件?

0 投票
0 回答
94 浏览

caching - 导致内存泄漏的插件

我们有一个 elixir(版本 1.8.1)Web 应用程序在牧场主集群(在 EC2 中运行,使用 AMI Rancheros 1.4.0)内的 docker(服务器版本 1.12.6,客户端版本 18.09.2)容器内运行。我们正在使用 phoenix 框架(版本 1.3)。

我使用文件系统实现了一个简单的 html 缓存。这是一个小插件,用于检查请求的 url 的 html 文件是否存在,如果存在则返回该文件。如果没有,它会在发送响应之前注册一个要运行的函数,以将 html 响应保存到缓存中。

在缓存命中的情况下,它的响应时间为 4 毫秒及以下,效果非常好。但似乎插头确实引入了内存泄漏。docker 容器使用的内存会随着时间的推移而增长,具体取决于 Web 应用程序接收的流量。如果我有一个简单的爬虫穿过侧面,内存会以大约 1MB/分钟的速度增长。

有趣的是,这不会在我的开发机器上本地发生,而是在我们的登台和生产环境中发生。

这是完整的插件:

0 投票
1 回答
1353 浏览

elixir - Plug.Parser 不读取/解析 JSON 正文

我正在编写 Elixir (1.8) + Plug_Cowboy (2.0.2) + Jason (1.1.2) 服务器。根据我从文档中获得的信息,一旦 Plug 解析器通过,我应该将所有内容都放在body_params. 问题是conn.body_params在我的情况下访问返回%Plug.Conn.Unfetched{aspect: :body_params}. 检查下面的代码:

知道发生了什么吗?

我对此进行了测试:

我曾尝试添加:urlencoded到解析器,或重新排列插件顺序,但无济于事。

0 投票
1 回答
93 浏览

elixir - 帖子请求正文未正确发送

我正在编写一个 POST 请求,该请求应该使用 elixir 将一些信息发送到 REST api,这些信息应该能够在 conn.body_params 中访问,但它看起来是空的。

我的代码如下:

我的插件也有如下配置:

应该如何编写才能在 POST 请求中实际发送信息?