我如何获得 puma rack 应用程序中的所有请求?
How do I get all requests in puma rack app?
我正在写一个非常简单的 puma 服务器,
而且每次请求我都会收到 404。
如何在没有 Sinatra 的情况下配置“/”路径?
我只想捕获 所有 个请求。
#config.ru
module Moon
class HelloWorldApp
def call(env)
[200, {}, 'Hello World']
end
def each(env=nil)
env
end
end
end
run Rack::Cascade.new Moon::HelloWorldApp.new
我运行是这样的:
$ puma config.ru -p 9595
使用这个卷曲:
$ curl http://0.0.0.0:9595/test
并得到 404:
127.0.0.1 - - [07/Apr/2015:22:49:25 +0300] "GET /test HTTP/1.1" 404 - 0.0002
Rack::Cascade
期望将应用程序的显式 array 传递给构造函数(或者至少类似于响应每个应用程序并生成应用程序的可枚举对象)。然后 calls each
on this array 获取每个应用程序(看起来您遇到了无方法错误并尝试通过向您的应用程序添加 each
方法来解决它)。
通过将 run
行更改为:
来修复它
run Rack::Cascade.new [Moon::HelloWorldApp.new]
您还需要更改 returned 数组的正文部分,它需要 responds to each
and yields String
s,最简单的修复方法是 return数组:
[200, {}, ['Hello World']]
我正在写一个非常简单的 puma 服务器, 而且每次请求我都会收到 404。 如何在没有 Sinatra 的情况下配置“/”路径?
我只想捕获 所有 个请求。
#config.ru
module Moon
class HelloWorldApp
def call(env)
[200, {}, 'Hello World']
end
def each(env=nil)
env
end
end
end
run Rack::Cascade.new Moon::HelloWorldApp.new
我运行是这样的:
$ puma config.ru -p 9595
使用这个卷曲:
$ curl http://0.0.0.0:9595/test
并得到 404:
127.0.0.1 - - [07/Apr/2015:22:49:25 +0300] "GET /test HTTP/1.1" 404 - 0.0002
Rack::Cascade
期望将应用程序的显式 array 传递给构造函数(或者至少类似于响应每个应用程序并生成应用程序的可枚举对象)。然后 calls each
on this array 获取每个应用程序(看起来您遇到了无方法错误并尝试通过向您的应用程序添加 each
方法来解决它)。
通过将 run
行更改为:
run Rack::Cascade.new [Moon::HelloWorldApp.new]
您还需要更改 returned 数组的正文部分,它需要 responds to each
and yields String
s,最简单的修复方法是 return数组:
[200, {}, ['Hello World']]