Wdrażanie aplikacji Node.js nie powinno być kłopotliwe. Skonfiguruj i uruchom swój serwer Express.js dzięki ekonomicznej i przyjaznej dla użytkownika platformie Render.

Pod koniec 2022 roku Heroku zrezygnowało z opcji bezpłatnego poziomu, co spowodowało usunięcie wcześniej dostępnego bezpłatnego planu subskrypcji hostingu internetowego i innych usług w chmurze w swoim ekosystemie.

Warstwy bezpłatne są szczególnie przydatne i opłacalne, jeśli zamierzasz wdrażać i hostować aplikacje przez krótki okres. Na szczęście istnieje alternatywna platforma chmurowa, która, podobnie jak Heroku, oferuje między innymi bezpłatny poziom usług w chmurze.

W tym artykule przyjrzymy się, jak wdrożyć interfejs API REST Express.js w usłudze Render, opartej na chmurze platformie hostingowej.

Co to jest renderowanie?

Render to platforma hostingowa w chmurze, która zapewnia bezproblemowy i bezproblemowy sposób wdrażania i zarządzania statycznymi witrynami internetowymi, pełnoprawnymi aplikacjami internetowymi, interfejsami API zaplecza lub bazami danych w chmurze. Funkcje obejmują:

instagram viewer
  • Przyjazny dla użytkownika interfejs: Render zapewnia prosty i intuicyjny interfejs, który upraszcza proces wdrażania aplikacji zbudowanych przy użyciu popularnych języków programowania, takich jak Python i Node.js.
  • Wbudowane bazy danych: Render oferuje wbudowaną obsługę popularnych baz danych, takich jak PostgreSQL, MySQL i MongoDB, dzięki czemu łatwa konfiguracja i integracja baz danych z aplikacjami bez konieczności konfigurowania oddzielnej bazy danych serwery.
  • Bezproblemowy przebieg wdrażania: Render zapewnia funkcje, takie jak automatyczne wdrażanie, wycofywanie i integracje z popularnymi usługami, takimi jak GitHub i GitLab.
  • Domeny niestandardowe i SSL: Render oferuje możliwość konfigurowania niestandardowych nazw domen dla stron internetowych i aplikacji internetowych oraz zawiera bezpłatne certyfikaty SSL zapewniające bezpieczny dostęp HTTPS.

Porównanie renderowania i Heroku

Podobnie jak inne platformy chmurowe, Render ma swoje zalety i wady. Ale jak wypada w porównaniu z popularnymi rozwiązaniami chmurowymi, takimi jak Heroku?

  • Prostota: Render zapewnia przyjazny dla użytkownika interfejs do wdrażania aplikacji i zarządzania nimi, z naciskiem na łatwość użytkowania i minimalną konfigurację.
  • Automatyczne skalowanie: Render automatycznie skaluje aplikacje w zależności od zapotrzebowania, bez konieczności ręcznego dostosowywania lub skomplikowanej konfiguracji.
  • Opłacalność: Render oferuje opłacalne ceny, które obejmują bezpłatny poziom dla poszczególnych projektów i stosunkowo niskie ceny dla zespołów i planów organizacyjnych, co czyni go przyjazną dla budżetu opcją do hostowania zarówno małych aplikacji internetowych, jak i dużych komercyjnych projektowanie.
  • Ograniczona elastyczność: Jego prostota i minimalna konfiguracja mogą stanowić ograniczenie dla zaawansowanych i złożonych projektów, które wymagają większej personalizacji i kontroli nad środowiskiem hostingowym.

Skonfiguruj nowy projekt w renderowaniu

Aby rozpocząć, przejdź do strona rendera i zarejestruj się i zaloguj na swoje konto.

Render ułatwia wdrażanie interfejsów API zaplecza i zarządzanie nimi, oferując wbudowaną obsługę popularnych języków programowania i usług internetowych, które usprawniają proces wdrażania.

W tym przewodniku wykorzystamy funkcję usług internetowych do wdrożenia interfejsu API REST Express.js. Aby kontynuować, musisz najpierw skonfigurować instancję bazy danych PostgreSQL w Renderze.

Na stronie przeglądu kliknij przycisk Nowy PostgreSQL przycisk, aby skonfigurować nową instancję.

Następnie wpisz nazwę swojej bazy danych i kliknij Utwórz bazę danych. Na koniec skopiuj plik Adres URL wewnętrznej bazy danych pod warunkiem, że. Użyjesz go do skonfigurowania połączenia pomiędzy swoim Express REST API a bazą danych PostgreSQL.

Zasadniczo adres URL wewnętrznej bazy danych służy do nawiązywania połączenia między aplikacjami działającymi na serwerach Rendera, takimi jak wdrożony interfejs API lub pełnoprawna aplikacja internetowa.

Niemniej jednak, jeśli chcesz korzystać tylko z bazy danych PostgreSQL z aplikacji wdrożonej na innej platformie, możesz użyć Adres URL zewnętrznej bazy danych skonfigurować połączenie z bazą danych.

Utwórz interfejs API REST Express.js

Śmiało i utwórz serwer WWW Express.js. Następnie zainstaluj następujące pakiety:

npm zainstaluj pg knex

Możesz znaleźć kod tego projektu w this Repozytorium GitHub.

Skonfiguruj połączenie z bazą danych

Aby skonfigurować połączenie między interfejsem API Express.js a instancją PostgreSQL programu Render, w katalogu głównym folderu projektu utwórz plik db.js plik i dodaj poniższy kod.

konst kneks = wymagać(„kneks”);
konst db = knex({
klient: „strona”,
połączenie: {
ciąg połączenia: „URL bazy danych”,
ssl: {
odrzuć Nieautoryzowane: FAŁSZ
}
}
});

moduł.eksport = db;

Następnie otwórz indeks.js plik i dodaj kod poniżej implementuje proste API REST z czterema trasami.

konst ekspres = wymagać("wyrazić");
konst aplikacja = ekspres()
konst baza danych = wymagać('./db')
konst PORT = proces.env. PORT || 5000

app.use (express.json())
app.use (express.urlencoded({ rozszerzony: PRAWDA }))

aplikacja.pobierz('/', (req, res) => res.send('Witaj świecie!' ))

// Pobierz wszystkich użytkowników
aplikacja.pobierz('/użytkownicy', asynchroniczny (wymaganie, res) => {
próbować {
konst użytkownicy = czekać na db.select().from(„użytkownicy”)
res.json (użytkownicy)
} złapać (błąd) {
konsola.błąd (błąd)
res.status(500.json({ wiadomość: „Błąd podczas pobierania użytkowników” })
}
})


aplikacja.post('/użytkownicy', asynchroniczny (wymaganie, res) => {
próbować {
konst użytkownik = czekać na baza danych („użytkownicy”).wstawić({ nazwa: req.body.name }).returning('*')
res.json (użytkownik)
} złapać (błąd) {
konsola.błąd (błąd)
res.status(500.json({ wiadomość: „Błąd podczas tworzenia użytkownika” })
}
})

// Usuń istniejącego użytkownika
aplikacja.usuń('/użytkownicy/:identyfikator', asynchroniczny (wymaganie, res) => {
próbować {
konst { id } = wymagane parametry
konst użytkownik = czekać na baza danych („użytkownicy”).where({ id }).delete().returning('*')
res.json (użytkownik)
} złapać (błąd) {
konsola.błąd (błąd)
res.status(500.json({ wiadomość: „Błąd podczas usuwania użytkownika” })
}
})

app.listen (PORT, () => konsola.dziennik(`Serwer w PORT:${PORT}`))

Skonfiguruj plik migrate.js

Stworzyć nowy folder, skrypty, w katalogu głównym swojego projektu dodaj nowy plik, migracja.js, i na koniec dodaj poniższy kod:

konst baza danych = wymagać('../db');
(asynchroniczny () => {
próbować {
czekać na db.schema.dropTableIfExists(„użytkownicy”)
czekać na db.schemat.withSchema('publiczny'.createTable(„użytkownicy”, (tabela) => {
table.increments()
tabela.string('nazwa')
})
konsola.dziennik(„Utworzono tabelę użytkowników!”)
proces.wyjście(0)
} złapać (błąd) {
konsola.log (błąd)
proces.wyjście(1)
}
})()

Ten kod utworzy nowy użytkownicy w bazie danych z dwiema kolumnami: automatycznie zwiększającym się polem klucza podstawowego i polem nazwy.

Na koniec dodaj te polecenia do swojego pakiet.json plik.

„skrypty”: {
"początek": „indeks węzła.js”,
"migrować": „skrypty węzłów/migracja.js”,
},

Na koniec, aby utworzyć tabelę użytkownika w bazie danych, musisz uruchomić migracja.js plik jako skrypt na swoim terminalu za pomocą poniższego polecenia.

npm uruchom migrację

Jednak przed uruchomieniem polecenia upewnij się, że pobrałeś plik Adres URL zewnętrznej bazy danych z informacji o ustawieniach instancji PostgreSQL programu Render i wklej go do pliku db.js plik jako ciąg połączenia.

Spowoduje to nawiązanie połączenia z instancją bazy danych z komputera lokalnego, umożliwiając utworzenie tabeli przed wdrożeniem interfejsu API. Po utworzeniu tabeli możesz przejść do instancji PostgreSQL swojego Rendera, pobrać plik Adres URL wewnętrznej bazy danychi zaktualizuj plik db.js odpowiednio złożyć.

Wdróż interfejs API REST w usłudze Render

Pierwszy, utwórz nowe repozytorium na GitHub i wciśnij kod projektu. Następnie zaloguj się na swoje konto Render, kliknij na Nowy+ przycisk i wybierz opcję Serwis internetowy opcję z menu rozwijanego.

Na koniec uzyskaj dostęp do swojego konta GitHub, wybierz repozytorium swojego projektu i połącz się z nim w Renderze.

Na stronie ustawień usługi sieciowej podaj nazwę nowej usługi, podaj katalog główny projektu, polecenie build i start, a na koniec kliknij przycisk Utwórz usługę internetową. Po zakończeniu procesu wdrażania skopiuj podany adres URL, aby przetestować punkty końcowe w programie Postman.

Przetestuj punkty końcowe interfejsu API w programie Postman

Postman to popularne narzędzie do tworzenia i testowania interfejsów API. Aby zapoznać się z listonoszem, dowiedz się, jak go używać do testowania interfejsu API.

Aby przetestować wdrożony interfejs API, utwórz plik POST prośba do /użytkownicy punkt końcowy do przechowywania danych w bazie danych PostgreSQL.

Na koniec wykonaj żądanie GET, aby pobrać zapisane dane.

Czy renderowanie jest realną alternatywą?

Render zapewnia prosty proces konfiguracji i bezproblemową integrację z popularnymi systemami kontroli wersji, co czyni go dobrą alternatywną platformą hostingu w chmurze.

Co więcej, konkurencyjny model cenowy i wbudowana obsługa popularnych narzędzi programistycznych sprawiają, że jest to niezawodna i przyjazna dla użytkownika opcja zarówno dla projektów pobocznych, jak i dużych aplikacji komercyjnych.