Rack学习笔记一,一个简单的hello world

Rack作为Ruby web服务的中间介,在整个开发中是非常重要的。很多框架的基础服务都是基于Rack的。本文做一个简单的hello world。


1, 基本介绍

很简单,Rack只需要一个简单的ruby类,方法,Proc, lamba 等,只要能调用 call方法的代码片段都行
基本的模式

def call(env)
[status, [headers], body]
end

如下是一个简单的hello_world.rb文件
require 'rubygems'
require 'rack'

class HelloWorld
  def call(env)
    [200, {"Content-Type" => "text/html"}, "hello, world"]
  end 
end

Rack::Handler::Thin.run HelloWorld.new, :Port => 9292

运行 ruby hello_world.rb即可访问

2, 还可以使用Proc 或者 其他的
所以,如下方法都是可行的
Rack::Handler::Thin.run proc {|env| [200, {"Content-Type" => "text/html"}, "Hello Rack!"]}, :Port => 9292

def application(env)
  [200, {"Content-Type" => "text/html"}, "Hello Rack!"]
end

Rack::Handler::Thin.run method(:application), :Port => 9292

3, 使用rackup 启动
config.ru
run Proc.new { |env| [200, {"Content-Type" => "text/html"}, ["hello world!"]]  }

然后以  rackup config.ru启动, rackup默认是9292启动的

注意,此处有一个问题, body不能是字符串,因为在1.9.2中,String 没有each 方法了,所以,需要使用数组


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值