sql >> Databáze >  >> NoSQL >> MongoDB

Proč se mi zobrazuje chyba 500 Je nám líto, ale při odesílání mé aplikace do Heroku se něco pokazilo?

Chyba

500 server error je v podstatě kryt pro všechny případy, kdy má váš server interní problém (a nemůže vykreslit váš požadavek)

Zpracování chyb Rails směruje všechny vaše chyby do řady souborů uvnitř vašeho /public adresář s názvem 422.html , 404.html a 500.html -- představující nejčastější chyby

Důvod, proč se vám zobrazuje chyba 500, může být cokoli uvnitř vaší aplikace. Zde je to, co bych udělal, abych to napravil:

Prostředí

Dostáváte chybu v produkci, což znamená, že problém bude způsobovat rozdíl v prostředí

Začal bych tím, že se podívám, co se mění. Obvykle je to DB nebo některá nastavení prostředí (jiný poskytovatel DB atd.), co způsobuje problém

DB

Nejběžnějších 500 chyb je způsobeno nekonzistentností DB mezi vývojovým a produkčním prostředím. Nevím o mongoidu, ale u MYSQL / PGSQL bude problém s nemigrací ve výrobě:

heroku run rake db:migrate normálně řeší většinu problémů s db v produkci

Oznámení o výjimce

Existuje velmi dobrý klenot jménem upozornění na výjimku (vytaženo z jádra Rails), což je součást middlwaru, který odesílá upozornění na chyby e-mailem:

  #config/environments/production.rb
  config.middleware.use ExceptionNotification::Rack,
  :email => {
    :email_prefix => "Subject",
    :sender_address => %{"notifier" <[email protected]>},
    :exception_recipients => %w{[email protected]}
  }

Budete si muset stáhnout doplněk SendGrid v Heroku a přidejte to do svého production.rb :

  #config/environments/production.rb
  config.action_mailer.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
  }



  1. MongoDb blízký/geoneární dotaz s proměnnou vzdáleností

  2. Jak mohu spustit Spring s vypnutým MongoDB, ale stále nainstalovaným?

  3. MongoError:Parametr filtru musí být objekt

  4. TypeError:Object.keys volané na non-objekt při aktualizaci dokumentu