Sinatra Sinatra::Base - 中间件,程序库和模块化应用
2023-12-20 15:28 更新
把你的应用定义在顶层,对于微型应用这会工作得很好,但是在构建可复用的组件时候会带来客观的不利,比如构建 Rack 中间件,Rails metal,带有服务器组件的简单程序库,或者甚至是 Sinatra 扩展。顶层的 DSL 污染了 Object 命名空间,并假定了一个微型应用风格的配置 (例如,单一的应用文件, ./public 和 ./views 目录,日志,异常细节页面,等等)。这时应该让 Sinatra::Base 走到台前了:
require 'sinatra/base'
class MyApp < Sinatra::Base
set :sessions, true
set :foo, 'bar'
get '/' do
'Hello world!'
end
end
Sinatra::Base 子类可用的方法实际上就是通过顶层 DSL 可用的方法。大部分顶层应用可以通过两个改变转换成 Sinatra::Base 组件:
你的文件应当引入 sinatra/base 而不是 sinatra; 否则,所有的 Sinatra 的 DSL 方法将会被引进到 主命名空间。
把你的应用的路由,错误处理,过滤器和选项放在 一个 Sinatra::Base 的子类中。
+Sinatra::Base+ 是一张白纸。大部分的选项默认是禁用的,包含内置的服务器。参见 选项和配置 查看可用选项的具体细节和他们的行为。
以上内容是否对您有帮助:
更多建议: