1

我有一台运行 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 代理到瘦服务器。

4

0 回答 0