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

用户314159

我知道Rack中间件过滤器是一个带有初始化和调用方法的Ruby类。我知道调用方法需要一个“ env”参数。像这样:

class MyFilter
  def initialize(app)
  end

  def call(env)
  end
end

我的问题是:“ env”参数发送给“ call”的确切含义是什么?这与Rails ENV环境(即开发,测试,生产)相同吗?

谢谢!

睡觉

env只是一个哈希。机架本身和各种中间件在其中添加了价值。

要了解哈希中各种键的含义,请查看机架规格

这是一个示例环境散列:

{
  "GATEWAY_INTERFACE" => "CGI/1.1",
  "PATH_INFO" => "/index.html",
  "QUERY_STRING" => "",
  "REMOTE_ADDR" => "::1",
  "REMOTE_HOST" => "localhost",
  "REQUEST_METHOD" => "GET",
  "REQUEST_URI" => "http://localhost:3000/index.html",
  "SCRIPT_NAME" => "",
  "SERVER_NAME" => "localhost",
  "SERVER_PORT" => "3000",
  "SERVER_PROTOCOL" => "HTTP/1.1",
  "SERVER_SOFTWARE" => "WEBrick/1.3.1 (Ruby/2.0.0/2013-11-22)",
  "HTTP_HOST" => "localhost:3000",
  "HTTP_USER_AGENT" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0",
  "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "HTTP_ACCEPT_LANGUAGE" => "zh-tw,zh;q=0.8,en-us;q=0.5,en;q=0.3",
  "HTTP_ACCEPT_ENCODING" => "gzip, deflate",
  "HTTP_COOKIE" => "jsonrpc.session=3iqp3ydRwFyqjcfO0GT2bzUh.bacc2786c7a81df0d0e950bec8fa1a9b1ba0bb61",
  "HTTP_CONNECTION" => "keep-alive",
  "HTTP_CACHE_CONTROL" => "max-age=0",
  "rack.version" => [1, 2],
  "rack.input" => #<StringIO:0x007fa1bce039f8>,
  "rack.errors" => #<IO:<STDERR>>,
  "rack.multithread" => true,
  "rack.multiprocess" => false,
  "rack.run_once" => false,
  "rack.url_scheme" => "http",
  "HTTP_VERSION" => "HTTP/1.1",
  "REQUEST_PATH" => "/index.html"
}

为了更易于使用,请检出Rack :: Request,这将使访问env哈希值内的值更加容易。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

机架中间件中的跟踪错误

来自分类Dev

机架中间件中的跟踪错误

来自分类Dev

中间件中的laravel / lumen访问.env值

来自分类Dev

在 Laravel 上的中间件文件中调用 env 常量

来自分类Dev

在Koa中编写中间件有什么意义?

来自分类Dev

连接中间件中的bodyParser()有什么作用?

来自分类Dev

为什么 Laravel 在中间件中跳过我的 if 语句?

来自分类Dev

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

来自分类Dev

路由中的中间件与控制器构造函数中的中间件有什么区别?

来自分类Dev

节点和节点中间件中的“ req”和“ res”参数是什么?

来自分类Dev

节点和节点中间件中的“ req”和“ res”参数是什么?

来自分类Dev

这两个步骤是什么,在这个中间件中检查阻止?

来自分类Dev

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

来自分类Dev

如何从中间件获取变量?

来自分类Dev

Django中间件的正确顺序是什么?

来自分类Dev

快速会话中间件的秘密目的是什么?

来自分类Dev

猫鼬中间件如何工作,next()是什么?

来自分类Dev

中间件Yeoman函数实现的目的是什么?

来自分类Dev

在Laravel 5中设置ENV变量的正确方法是什么?

来自分类Dev

为什么Express不是中间件?

来自分类Dev

通过Laravel 5.2中的控制器将中间件中的变量传递给视图

来自分类Dev

通过Laravel 5.2中的控制器将中间件中的变量传递给视图

来自分类Dev

将中间件中的会话变量传递给 Laravel 主中的刀片文件

来自分类Dev

将变量从中间件传递到Express.js中的Passport

来自分类Dev

nodejs在两个不同的中间件中传递相同的变量

来自分类Dev

在一个变量中调用多个中间件/参数-deno Oak框架

来自分类Dev

nodejs在两个不同的中间件中传递相同的变量

来自分类Dev

在请求级别更改 express 中间件中的全局变量。阻止某些请求的获取

Related 相关文章

  1. 1

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

  2. 2

    机架中间件中的跟踪错误

  3. 3

    机架中间件中的跟踪错误

  4. 4

    中间件中的laravel / lumen访问.env值

  5. 5

    在 Laravel 上的中间件文件中调用 env 常量

  6. 6

    在Koa中编写中间件有什么意义?

  7. 7

    连接中间件中的bodyParser()有什么作用?

  8. 8

    为什么 Laravel 在中间件中跳过我的 if 语句?

  9. 9

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

  10. 10

    路由中的中间件与控制器构造函数中的中间件有什么区别?

  11. 11

    节点和节点中间件中的“ req”和“ res”参数是什么?

  12. 12

    节点和节点中间件中的“ req”和“ res”参数是什么?

  13. 13

    这两个步骤是什么,在这个中间件中检查阻止?

  14. 14

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

  15. 15

    如何从中间件获取变量?

  16. 16

    Django中间件的正确顺序是什么?

  17. 17

    快速会话中间件的秘密目的是什么?

  18. 18

    猫鼬中间件如何工作,next()是什么?

  19. 19

    中间件Yeoman函数实现的目的是什么?

  20. 20

    在Laravel 5中设置ENV变量的正确方法是什么?

  21. 21

    为什么Express不是中间件?

  22. 22

    通过Laravel 5.2中的控制器将中间件中的变量传递给视图

  23. 23

    通过Laravel 5.2中的控制器将中间件中的变量传递给视图

  24. 24

    将中间件中的会话变量传递给 Laravel 主中的刀片文件

  25. 25

    将变量从中间件传递到Express.js中的Passport

  26. 26

    nodejs在两个不同的中间件中传递相同的变量

  27. 27

    在一个变量中调用多个中间件/参数-deno Oak框架

  28. 28

    nodejs在两个不同的中间件中传递相同的变量

  29. 29

    在请求级别更改 express 中间件中的全局变量。阻止某些请求的获取

热门标签

归档