Die Bereitstellung von Node.js-Apps sollte kein Problem sein. Bringen Sie Ihren Express.js-Server mit der kostengünstigen und benutzerfreundlichen Plattform von Render zum Laufen.

Ende 2022 stellte Heroku seine kostenlose Kontingentoption ein, was zur Entfernung des zuvor verfügbaren kostenlosen Abonnementplans für Webhosting und andere Cloud-Dienste in seinem Ökosystem führte.

Kostenlose Kontingente sind besonders praktisch und kostengünstig, wenn Sie beabsichtigen, Anwendungen für einen kurzen Zeitraum bereitzustellen und zu hosten. Glücklicherweise gibt es eine alternative Cloud-Plattform, die wie Heroku unter anderem eine kostenlose Stufe für ihre Cloud-Dienste anbietet.

In diesem Artikel untersuchen wir, wie Sie eine Express.js-REST-API auf Render, einer Cloud-basierten Hosting-Plattform, bereitstellen.

Was ist Rendern?

Render ist eine Cloud-Hosting-Plattform, die eine nahtlose und problemlose Möglichkeit bietet, statische Websites, vollwertige Webanwendungen, Backend-APIs oder Datenbanken in der Cloud bereitzustellen und zu verwalten. Zu den Funktionen gehören:

instagram viewer
  • Benutzerfreundliches Bedienfeld: Render bietet eine einfache und intuitive Benutzeroberfläche, die den Prozess der Bereitstellung von Anwendungen vereinfacht, die mit gängigen Programmiersprachen wie Python und Node.js erstellt wurden.
  • Eingebaute Datenbanken: Render bietet integrierte Unterstützung für gängige Datenbanken wie PostgreSQL, MySQL und MongoDB Einfaches Einrichten und Integrieren von Datenbanken in Anwendungen, ohne dass eine separate Datenbank eingerichtet werden muss Server.
  • Nahtloser Bereitstellungs-Workflow: Render bietet Funktionen wie automatisierte Bereitstellungen, Rollbacks und Integrationen mit beliebten Diensten wie GitHub und GitLab.
  • Benutzerdefinierte Domänen und SSL: Render bietet die Möglichkeit, benutzerdefinierte Domänennamen für Websites und Webanwendungen zu konfigurieren, und enthält kostenlose SSL-Zertifikate für sicheren HTTPS-Zugriff.

Vergleich zwischen Render und Heroku

Wie die anderen Cloud-Plattformen hat Render seine Vor- und Nachteile. Aber wie schneidet es im Vergleich zu beliebten Cloud-Lösungen wie Heroku ab?

  • Einfachheit: Render bietet eine benutzerfreundliche Oberfläche zum Bereitstellen und Verwalten von Anwendungen, wobei der Schwerpunkt auf Benutzerfreundlichkeit und minimaler Konfiguration liegt.
  • Automatisierte Skalierung: Render skaliert Anwendungen automatisch je nach Bedarf, ohne dass manuelle Anpassungen oder komplexe Konfigurationen erforderlich sind.
  • Kosteneffektivität: Render bietet kostengünstige Preise, darunter ein kostenloses Kontingent für Einzelprojekte und relativ niedrige Preise für Teams und Organisationspläne, was es zu einer budgetfreundlichen Option für das Hosting sowohl kleiner Webanwendungen als auch großer kommerzieller Anwendungen macht Projekte.
  • Begrenzte Flexibilität: Seine Einfachheit und minimale Konfiguration können eine Einschränkung für fortgeschrittene und komplexe Projekte darstellen, die eine stärkere Anpassung und Kontrolle über die Hosting-Umgebung erfordern.

Richten Sie ein neues Projekt beim Rendern ein

Um zu beginnen, gehen Sie zu über Renders Website und registrieren Sie sich und melden Sie sich bei Ihrem Konto an.

Render erleichtert die Bereitstellung und Verwaltung von Backend-APIs, indem es integrierte Unterstützung für beliebte Programmiersprachen und Webdienste bietet, die den Bereitstellungsprozess rationalisieren.

In diesem Leitfaden wird die Webdienstfunktion verwendet, um eine Express.js-REST-API bereitzustellen. Um mitzumachen, müssen Sie zunächst eine PostgreSQL-Datenbankinstanz auf Render einrichten.

Klicken Sie auf der Übersichtsseite auf die Neues PostgreSQL Schaltfläche, um eine neue Instanz einzurichten.

Geben Sie als nächstes den Namen Ihrer Datenbank ein und klicken Sie auf Datenbank erstellen. Kopieren Sie abschließend die Interne Datenbank-URL bereitgestellt. Sie verwenden es, um die Verbindung zwischen Ihrer Express-REST-API und der PostgreSQL-Datenbank zu konfigurieren.

Im Wesentlichen wird die interne Datenbank-URL verwendet, um eine Verbindung zwischen Anwendungen herzustellen, die auf den Servern von Render ausgeführt werden, z. B. eine bereitgestellte API oder eine vollwertige Webanwendung.

Wenn Sie jedoch nur die PostgreSQL-Datenbank von einer Anwendung verwenden möchten, die auf einer anderen Plattform bereitgestellt wird, können Sie die verwenden Externe Datenbank-URL um die Datenbankverbindung zu konfigurieren.

Erstellen Sie eine Express.js-REST-API

Fahre fort und Erstellen Sie einen Express.js-Webserver. Als nächstes installieren Sie die folgenden Pakete:

npm installiere pg knex

Sie finden den Code dieses Projekts darin GitHub-Repository.

Konfigurieren Sie die Datenbankverbindung

Um die Verbindung zwischen der Express.js-API und der PostgreSQL-Instanz von Render einzurichten, erstellen Sie im Stammverzeichnis Ihres Projektordners eine db.js Datei und fügen Sie den folgenden Code hinzu.

konst Knie = erfordern('knex');
konst db = knex ({
Klient: 'pg',
Verbindung: {
Verbindungszeichenfolge: 'die Datenbank-URL',
SSL: {
ablehnenUnberechtigt: FALSCH
}
}
});

Modul.exports = db;

Als nächstes öffnen Sie die index.js Datei, und fügen Sie den Code darunter hinzu implementiert eine einfache REST-API mit vier Strecken.

konst ausdrücken = erfordern("äußern");
konst app = ausdrücken()
konst db = erfordern('./db')
konst PORT = process.env. HAFEN || 5000

app.use (express.json())
app.use (express.urlencoded({ erweitert: WAHR }))

app.get('/', (req, res) => res.send('Hallo Welt!' ))

// Alle Benutzer abrufen
app.get('/benutzer', asynchron (req, res) => {
versuchen {
konst Benutzer = erwarten db.select().from('Benutzer')
res.json (Benutzer)
} fangen (Fehler) {
Konsole.error (Fehler)
res.status(500).json({ Nachricht: 'Fehler beim Abrufen von Benutzern' })
}
})


app.post('/benutzer', asynchron (req, res) => {
versuchen {
konst Benutzer = erwarten db('Benutzer').Einfügung({ Name: req.body.name }).returning('*')
res.json (Benutzer)
} fangen (Fehler) {
Konsole.error (Fehler)
res.status(500).json({ Nachricht: 'Fehler beim Erstellen des Benutzers' })
}
})

// Einen bestehenden Benutzer löschen
app.delete('/users/:id', asynchron (req, res) => {
versuchen {
konst { id } = req.params
konst Benutzer = erwarten db('Benutzer').where({ id }).delete().returning('*')
res.json (Benutzer)
} fangen (Fehler) {
Konsole.error (Fehler)
res.status(500).json({ Nachricht: 'Fehler beim Löschen des Benutzers' })
}
})

app.listen (PORT, () => Konsole.Protokoll(`Server auf PORT:${PORT}`))

Richten Sie die Datei „migrate.js“ ein

Einen neuen Ordner erstellen, Skripte, fügen Sie im Stammverzeichnis Ihres Projekts eine neue Datei hinzu, migrieren.js, und fügen Sie schließlich den folgenden Code hinzu:

konst db = erfordern('../db');
(asynchron () => {
versuchen {
erwarten db.schema.dropTableIfExists('Benutzer')
erwarten db.schema.withSchema('öffentlich').Tabelle erstellen('Benutzer', (Tabelle) => {
Tabelle.inkremente ()
tabelle.string('Name')
})
Konsole.Protokoll('Benutzertabelle erstellt!')
Prozess.exit(0)
} fangen (irren) {
Konsole.log (fehler)
Prozess.exit(1)
}
})()

Dieser Code erstellt eine neue Benutzer Tabelle in der Datenbank mit zwei Spalten: einem automatisch inkrementierenden Primärschlüsselfeld und einem Namensfeld.

Fügen Sie schließlich diese Befehle zu Ihrer hinzu Paket.json Datei.

"Skripte": {
"Start": "Knotenindex.js",
"Wandern": "Knotenskripte/migrate.js",
},

Um die Tabelle des Benutzers in der Datenbank zu erstellen, müssen Sie schließlich die ausführen migrieren.js Datei als Skript auf Ihrem Terminal mit dem folgenden Befehl.

npm migrieren ausführen

Bevor Sie den Befehl ausführen, stellen Sie jedoch sicher, dass Sie die Externe Datenbank-URL aus den PostgreSQL-Instanzeinstellungen von Render und fügen Sie sie in die db.js Datei als Verbindungszeichenfolge.

Dadurch wird eine Verbindung mit der Datenbankinstanz von Ihrem lokalen Computer hergestellt, sodass Sie die Tabelle erstellen können, bevor Sie die API bereitstellen. Sobald die Tabelle erstellt ist, können Sie zur PostgreSQL-Instanz Ihres Renders wechseln und die Interne Datenbank-URL, und aktualisieren Sie die db.js Datei entsprechend.

Stellen Sie die REST-API auf Render bereit

Erste, Erstellen Sie ein neues Repository auf GitHub und drücken Sie den Projektcode. Melden Sie sich als Nächstes bei Ihrem Render-Konto an, klicken Sie auf die Neu+ Schaltfläche und wählen Sie die aus Internetservice Option aus dem Dropdown-Menü.

Greifen Sie schließlich auf Ihr GitHub-Konto zu, wählen Sie das Repository Ihres Projekts aus und stellen Sie über Render eine Verbindung damit her.

Geben Sie auf der Seite mit den Webdiensteinstellungen einen Namen für den neuen Dienst an, geben Sie das Stammverzeichnis des Projekts, den Befehl zum Erstellen und Starten an und klicken Sie schließlich auf Webdienst erstellen. Kopieren Sie nach Abschluss des Bereitstellungsprozesses die bereitgestellte URL, um die Endpunkte auf Postman zu testen.

Testen Sie die API-Endpunkte auf Postman

Postman ist ein beliebtes Tool zum Entwickeln und Testen von APIs. Um sich mit Postman vertraut zu machen, Erfahren Sie, wie Sie damit eine API testen.

Um die bereitgestellte API zu testen, erstellen Sie a POST Anfrage an die /Benutzer Endpunkt zum Speichern von Daten in der PostgreSQL-Datenbank.

Stellen Sie abschließend eine GET-Anforderung, um die gespeicherten Daten abzurufen.

Ist Rendern eine praktikable Alternative?

Render bietet einen einfachen Einrichtungsprozess und eine nahtlose Integration mit gängigen Versionskontrollsystemen, was es zu einer guten alternativen Cloud-Hosting-Plattform macht.

Darüber hinaus machen es sein wettbewerbsfähiges Preismodell und die integrierte Unterstützung für beliebte Entwicklungstools zu einer zuverlässigen und benutzerfreundlichen Option für Nebenprojekte und große kommerzielle Anwendungen.