codecamp

Sinatra 设定 消息体,状态码和消息头

通过路由代码块的返回值来设定状态码和消息体不仅是可能的,而且是推荐的。但是,在某些场景中你可能想在作业流程中的特定点上设置消息体。你可以通过 body 辅助方法这么做。如果你这样做了,你可以在那以后使用该方法获得消息体:

get '/foo' do
  body "bar"
end

after do
  puts body
end

也可以传一个代码块给 body,它将会被 Rack 处理器执行(这将可以被用来实现 streaming,参见“返回值”)。

和消息体类似,你也可以设定状态码和消息头:

get '/foo' do
  status 418
  headers \
    "Allow"   => "BREW, POST, GET, PROPFIND, WHEN",
    "Refresh" => "Refresh: 20; http://www.ietf.org/rfc/rfc2324.txt"
  body "I'm a tea pot!"
end

如同 body, 不带参数的 headers 和 status 可以用来访问 他们你的当前值。


Sinatra 触发另一个路由
Sinatra Streaming Responses
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Sinatra 配置

Sinatra 错误处理

Sinatra Sinatra::Base - 中间件,程序库和模块化应用

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }