什么是路由
在 Sinatra 中,路由是你的应用程序响应请求的方式,请求的路径(例如/welcome
)和使用的 HTTP
动词(例如 GET
或 POST
)。请求的编写方式如下:
<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 能够使用正则表达式进行路由匹配(更多内容见下文)。