问题标签 [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 - Plug 路由器是否需要匹配/调度管道?
我有一个将请求转发到其他路由器的路由器模块。在这个路由器中,我有一个由plug(:match)
和组成的管道plug(:dispatch)
。
在第二个模块中,我有相同的管道:
我在这里看到的问题是我似乎总是需要plug(:match)
并且plug(:dispatch)
在所有Plug
路由器中。所以我有以下问题:
- 这真的有必要吗?
- 是否所有路由器都需要在具有路由的同一文件中具有管道?
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.
elixir - 将 args 从自定义插件转发到第二个插件
我有一个看起来像这样的自定义插件:
但是,我需要能够传入错误处理程序。我目前这样做:
我宁愿做这样的事情:
并像这样或等效地把它传递到我的插件中:
如何将 args 从我的自定义插件传递到其内部调用的插件?
phoenix-framework - 困境:我应该使用模块插件还是功能插件:Phoenix
我需要在不同的模块上重用一个功能插件,但这样做似乎有点多余。模块插件是更好的方法吗?或者我如何重用功能插件?
elixir - 如何在运行时调用 Plug.Router 宏定义的路由?
我可以手动构建一个conn
然后像函数一样调用它们吗?如果你不明白“他们”是什么意思,请看下面的代码。
例如,定义一条路线/ping
我知道可以用中的conn
函数来完成use Plug.Test
,但是它是基于HTTP Client,而不是运行时函数调用,效率太低。
elixir - 如何测试设置 404 状态以及 Phoenix 重定向的插件
我正在尝试测试下面的插件在未找到 site_id 时是否返回 404。一切都在浏览器中运行,但测试抛出异常。
我的插头:
我的测试目前看起来像:
这是我得到的例外:
这里的最佳做法是什么?我应该在我的插头中呼唤凤凰城吗?任何帮助或建议都会非常棒。
谢谢你。
elixir - 如何使 Plug.ErrorHandler 和其他 Plug 同时工作?
我注意到send_resp
在handle_errors
回调中生成的响应Plug.ErrorHandler
不会通过其他插件。
例如,我在handle_error
. 但是这个 JSON 响应不会通过我的JSONHeaderPlug
and CORSPlug
。这带来了很多麻烦。
具体症状,例如缺少这些基本的 HTTP 标头:
有没有办法让响应以handle_error
与正常响应相同的顺序通过其他插件?
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/分钟的速度增长。
有趣的是,这不会在我的开发机器上本地发生,而是在我们的登台和生产环境中发生。
这是完整的插件:
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
到解析器,或重新排列插件顺序,但无济于事。
elixir - 帖子请求正文未正确发送
我正在编写一个 POST 请求,该请求应该使用 elixir 将一些信息发送到 REST api,这些信息应该能够在 conn.body_params 中访问,但它看起来是空的。
我的代码如下:
我的插件也有如下配置:
应该如何编写才能在 POST 请求中实际发送信息?