Rack app的定义方式是:
require ‘rack’ class MyServer def call(env) [200, {}, ['hello world']] end end Rack::Handler::WEBrick.run MyServer.new, Port: 2000
要给app加一些中间件,就需要这么写:
app = MyServer.new app = Rack::Lint.new(app) app = Rack::ShowStatus.new(app) app = Rack::ShowExceptions.new(app) app = Rack::CommonLogger.new(app)
Rack有自己的DSL(领域内专属语言)叫Rack::Builder,定义方法是:
app = Rack::Builder.new do use Rack::CommonLogger use Rack::ShowExceptions use Rack::ShowStatus use Rack::Lint run MyServer.new end
也可以把DSL的代码写在单独的ru配置文件中,这种方式形成的文件叫rackup文件:
#!/usr/bin/env rackup use Rack::CommonLogger use Rack::ShowExceptions use Rack::ShowStatus use Rack::Lint run MyServer.new
执行myserver.ru -s webrick -p 2000
相关推荐
贡献的机架中间件和实用程序该软件包包括Ruby Web服务器界面Rack的各种附加组件: Rack::Access Access-基于IP地址限制访问Rack::Backstage返回指定文件的内容(如果存在),这便于放置维护页面。 Rack::...
Rack::UTF8Sanitizer 是一个 Rack 中间件用来清理 URI 和 HTTP 请求头部中包含的无效 UTF-8 字符。Rails 的使用方法:config.middleware.insert 0, Rack::UTF8SanitizerRack 的使用方法:use Rack::UTF8Sanitizer
Rack::Builder提供了一个简洁的方式来组织中间件和应用,使其更易于管理和维护。 例如: ```ruby use MyMiddleware run MyApp ``` 在这个例子中,`use`语句用来添加中间件,而`run`语句则用来指定最终的应用。 #...
耙任务以修剪过时的会话rack_cas:sessions:prune:active_record和rack_cas:sessions:prune:mongoid要求Ruby> = 2.0 运行中的需要身份验证时状态的应用安装滑轨将 gem 'rack-cas'添加到您的并运行bundle install ...
Rack :: Authorize是一个Rack中间件,因此可以在任何Ruby Web框架中使用。 谢谢Rack。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rack-authorize' , :git => 'git@github....
Rack :: Timeout不能解决长时间运行的请求问题,它是一种调试和修复工具。 应用程序开发人员应跟踪机架超时的数据并解决特定超时的重复实例,例如通过重构代码,使其运行更快或抵消冗长的工作以异步发生。 升级中 ...
Redis Store为现代Ruby框架提供了全套存储( Cache , I18n , Session , HTTP Cache ),例如: Ruby on Rails , Sinatra , Rack , Rack :: Cache和I18n 。 它支持对象编组,超时,单个或多个节点以及名称空间...
已针对Ruby 1.8.7、1.9.2、1.9.3、2.0.0、2.1.10、2.2.7、2.3.4、2.4.1,ruby-head,REE和Rubinius&JRuby的最新版本进行测试。 安装 安装Rack :: SslEnforcer的最简单方法是使用 。 将Rack :: SslEnforcer添加到...
可移植:100%Ruby /可与任何支持Rack的框架一起使用磁盘,内存缓存和堆内存存储后端有关Rack :: Cache功能和用法的更多信息,请参见: Rack :: Cache并未针对性能进行过优化。 该项目的主要目标是为中小型部署提供...
一个用于机架应用程序的简单路由器。 需要Ruby 1.9+。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rack-router' 然后执行: $ bundle 或将其自己安装为: $ gem install rack-router 用法 这是一个示例...
改编自 Rack::Piwik 简单的 Rack 中间件有助于将 Piwik 跟踪代码注入您网站的页脚。 用法 宝石档案: gem 'rack-piwik', :require => 'rack/piwik' 辛纳屈 ## app.rb use Rack::Piwik, :piwik_url => '<url>', ...
rack-attack, 用于阻塞&节流的rack 中间件 :: 攻击 !rack 中间件,用于阻塞...Rack::Attack 是一个 rack 中间件,用来保护你的网络应用程序不受坏客户端的影响。 它允许基于请求的任意属性的safelisting,blocklisting
2. **配置**:在你的Rack应用中,创建一个Rack::ReverseProxy实例,并设置你需要代理的URL规则。例如: ```ruby use Rack::ReverseProxy do reverse_proxy /^\/api/, 'http://api.example.com' end ``` 这将把...
它可以单独使用,也可以作为Web框架和构建测试库的可重用起点。特征跨请求维护一个饼干罐根据需要轻松进行重定向设置请求标头以供所有后续请求使用占地面积小。 大约200 LOC支持平台2.2.2+ 2.3 2.4 JRuby 9.1以上...
Rack::Timesec是一个用于Ruby on Rails框架的中间件,它主要用于在Web应用中记录请求处理的时间,从而帮助开发者优化性能。源码分析是理解软件工作原理的重要途径,对于Rack::Timesec而言,了解其内部机制有助于我们...
Rack::Lock #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x164feb> Rack::Runtime Rack::MethodOverride ActionDispatch::RequestId Rails::Rack::Logger ActionDispatch::ShowExceptions ...
像React.js组件一样, Rack::Component实现一个render方法,该方法接受输入数据并返回要显示的内容。 您可以在任何Rack应用程序中使用“组件”来代替“控制器”,“视图”,“模板”和“助手”。 安装 将rack-...
包括Rack::Params获得.validator , #validate和#validate! 方法。 调用.validator(name, options = {}, &code)注册一个命名的验证器,以备后用。 调用#validate(name = nil, params = request.params, options = ...
为了与Shotgun和Rackup一起运行,需要config.ru文件。 您甚至可以将Jekyll应用程序部署到 ! 将其复制到您的Jekyll网站根目录中的config.ru中: require "rack/jekyll" run Rack :: Jekyll . new 而已。 Heroku...
安装将rack-reducer添加到您的Gemfile中: gem 'rack-reducer' , require : 'rack/reducer' Rack :: Reducer除了Rack本身之外没有其他依赖项。利用如果您的应用需要呈现数据库记录列表,则可能希望这些记录可通过URL...