什么是路由

在 Sinatra 中,路由是你的应用程序响应请求的方式,请求的路径(例如/welcome)和使用的 HTTP 动词(例如 GETPOST)。请求的编写方式如下:

<http-verb> <path> do
    <code block to execute when this route is requested>
end

这是一个示例,通过返回一个“Hi,whats up”页面来响应 GET/hello 路径的请求:

get "/hello" do
    return "Hi, whats up"
end

Sinatra 仅响应你定义的路线。如果你没有定义路线,Sinatra 会返回一个 404 Page Not Found 错误页面。

Sinatra 按照定义的顺序响应路由。如果你有多个可以匹配给定请求的路由(请参阅“基于 Regexp 的路径匹配”),则返回适合请求的第一个路由。

注意: Sinatra 将带有和不带前向斜线(/)的路线视为 2 条不同且不同的路线。也就是说,get '/hello'get '/hello/'默认匹配不同的代码块。如果要忽略尾部正斜杠并将两条路径视为相同,则可以在正斜杠后添加 ? 以使其可选,如下所示:get '/hello/?'。这使用 Sinatra 能够使用正则表达式进行路由匹配(更多内容见下文)。