我有一台运行 Sinatra 应用程序的瘦服务器。在一个文件中,我发送了一个 POST 请求,但它从未到达它的路线。如果我使用相同的代码运行它,bundle exec ruby myapp.rb
但是当它由 Thin using 运行时bundle exec thin start -p 3000
,它根本不匹配 post 路由。
post '/save/:website' do |website|
website_data = JSON.parse(request.body.read)
puts "Saving #{website} plugin data" #never reaches here
persister = Persister.new
persister.update_or_persist(website_data)
body "success"
end
这就是我声明 POST 请求的方式
def send_result (path, result)
request = Net::HTTP::Post.new('/save/something', initheader = {'Content-Type' => 'application/json'})
request.body = result.to_json
response = Net::HTTP.new('localhost', '3000').start { |http| http.request(request) }
end
这里是config.ru
# config.ru
require "./myapp"
run Sinatra::Application
我从来没有puts
在我的发布路线中到达 ,但是当它部署时没有thin
. 为什么这个请求不起作用?
另外,我已经对此提出了另一个问题,但这次我真的需要瘦服务器,因为我将使用 Apache 代理到瘦服务器。