PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

TypeError:Nie można wywołać metody 'query' o wartości null - podczas wywoływania pg.connect z Heroku node.js

Miałem ten sam problem z moją witryną i bardziej frustrujące było to, że działało na wdrożonej witrynie, ale kiedy próbowałem uruchomić witrynę lokalnie (za pomocą brygadzisty), otrzymałem ten błąd. Z błędu zrozumiałem, że nie mogę się połączyć do bazy danych i dalszego sprawdzania, są to dwa powody, które spowodowały ten błąd:

  1. Brak zmiennej środowiskowej DATABASE_URL
    Z jakiegoś powodu nie mam process.env.DATABASE_URL ustawiony w moim pliku .env, chociaż został prawidłowo ustawiony na zdalnej stronie. Aby rozwiązać ten problem, możesz uruchomić „heroku config” i skopiować wymagany DATABASE_URL do lokalnego pliku .env (jeśli ten plik nie istnieje, utwórz go).
    Ważna UWAGA: Kiedy kopiujesz i wklejasz zmienne, zmień znak ":" na "=".

  2. ?ssl=true nie jest częścią DATABASE_URL
    Dzięki powyższej poprawce klient wie, gdzie się połączyć, ale nadal nie może otworzyć połączenia z powodu problemów z uwierzytelnianiem. Dodając ?ssl=true do DATABASE_URL to w końcu rozwiązało problem dla mnie. Wygląda na to, że gdy próbujesz połączyć się ze zdalnej strony (serwerów heroku) nie musisz przekazywać parametru, ale gdy próbujesz połączyć się z bazą danych z lokalnego komputera, potrzebujesz tego uwierzytelnienia, aby nawiązać prawidłowe połączenie.

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Railsy:Jak używać zakresu, aby znaleźć element w tablicy tablic

  2. Lepszy sposób niż wiele instrukcji SELECT?

  3. Znajdź różnicę między znacznikami czasu w sekundach w PostgreSQL za pomocą JOOQ

  4. Usuń zduplikowaną kolumnę po zapytaniu SQL

  5. Jak napisać zapytanie bez uwzględniania wielkości liter zarówno dla MySQL, jak i Postgres?