机架中间件中的机架中间件?

浴缸中的数据

我正在尝试构建一个使用机架中间件本身(RackWired)的机架中间件GEM

我有一个现有的应用程序,其config.ru使用Rack :: Builder。在该块(Rack :: Builder)中,我想指定我的中间件,并在调用它时使用自己内部的第三方中间件(rack-cors)来做一些事情。令人困惑,我知道。

问题在于Rack :: Builder的上下文位于config.ru中,因此我的中间件(RackWired)无法访问它以“使用”第三方中间件(rack-cors)。

我努力的目的就在这里

有没有办法在中间件中使用中间件?

谢谢

索引

是的,我不确定您要做什么。但是你可以做到

class CorsWired
  def initialize(app)
    @app = app
  end

  def call(env)
    cors = Rack::Cors.new(@app, {}) do
      allow do
        origins '*'
        resource '*', :headers => :any, :methods => [:get, :post, :put, :options, :delete], :credentials => false
      end
    end
    cors.call(env)
  end
end

您的config.ru应该有,use CorsWired但是没有use CorsWired.new

这是我想您要问的问题,但我想您缺少中间件的要点。您应该根据自己config.ru的意愿将中间件之前/之后更改为使用机架式芯子。

require 'rack'
require 'rack/cors'
require './cors_wired'      

app = Rack::Builder.new  do
  use Rack::Cors do
    allow do
        origins '*'
        resource '*', :headers => :any, :methods => [:get, :post, :put, :options, :delete], :credentials => false
      end
    end
  use CorsWired
  run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }  
end
run app

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

机架中间件中的“ env”变量是什么?

来自分类Dev

RoR-首选-机架中间件或有源控制器过滤器?

来自分类Dev

在中间件中获取路由定义

来自分类Dev

如何从gem将机架中间件添加到Rails应用程序

来自分类Dev

Ruby on Rails-排除机架中间件-有可能吗?

来自分类Dev

如何测试是否使用了某些特定的机架中间件?

来自分类Dev

OWIN中间件中的URL重写

来自分类Dev

在中间件Laravel中获取URL

来自分类Dev

在机架中间件中更改response.body

来自分类Dev

机架中间件“陷阱”堆栈跟踪

来自分类Dev

在流明中启用中间件(Laravel)

来自分类Dev

Express 4中的中间件顺序

来自分类Dev

机架中间件中的跟踪错误

来自分类Dev

Ruby机架中间件因反向代理而失去看守会话

来自分类Dev

中间件中的Laravel依赖注入

来自分类Dev

MVC 6中的Cookie中间件

来自分类Dev

认证中间件

来自分类Dev

烧瓶中的中间件

来自分类Dev

快速中间件中的异步/等待

来自分类Dev

存根中间件

来自分类Dev

在中间件中获取路由定义

来自分类Dev

Ruby on Rails-排除机架中间件-有可能吗?

来自分类Dev

机架中间件从子模块提供静态文件夹

来自分类Dev

在流明中启用中间件(Laravel)

来自分类Dev

机架中间件服务器崩溃

来自分类Dev

机架中间件中的跟踪错误

来自分类Dev

捆绑中间件

来自分类Dev

中间件除外

来自分类Dev

在 NodeJS/ExpressJS 的中间件中调用中间件