Planen der Migration von Node.js und Express zu Azure Functions
Um die Umstellung der Back-End Express-App auf serverlose zu planen, können Sie die Express-App in drei Hauptbereiche unterteilen:
- den Express-Server, der sich größtenteils in server.ts befindet
- die Routen, die sich im Ordner routes/ befinden
- Die Datenzugriffslogik, die sich im Ordner services/ befindet
Um Ihren Code von Express zu Azure Functions umzugestalten, planen Sie diese Aktionen, mit deren Implementierung Sie in der nächsten Lerneinheit beginnen werden:
- Erstellen Sie eine neue Azure Functions-Anwendung.
- Kopieren Sie den Ordner services aus Node.js Express in die Azure Functions-App. Dies funktioniert, da die Datendienste nicht an den Express-Server gebunden sind.
- Erstellen Sie eine neue Funktions-API für jeden Routenendpunkt.
- Urlaube abrufen
- Urlaube hinzufügen
- Urlaub aktualisieren
- Urlaub löschen
- Aktualisieren Sie Funktionscode für die Verwendung der Datenzugriffslogik im Ordner services/.
- Aktualisieren Sie Funktionsrouten, um den ursprünglichen Express-Routen zu entsprechen.
Beispiel einer Express-Route
Dies ist ein einfaches Beispiel für eine Express-Route, die Urlaube aus dem Urlaubsdienst abruft. Beachten Sie, dass es sich bei den Parametern für den Routenhandler um die req
- und res
-Objekte handelt.
import * as express from 'express';
import { vacationService } from '../services';
const router = express.Router();
router.get('/vacations', (req, res) => { // API route
vacationService.getVacations(req, res); // Data access logic
});
Beispiel für eine Azure Functions-Route
Dies ist ein einfaches Beispiel für einen Azure Functions-Routenhandler und eine Routendefinition, die Urlaube aus dem Urlaubsdienst abruft. Beachten Sie, dass es sich bei den Parametern für den Routenhandler um die request
- und context
-Objekte handelt.
import { app } from '@azure/functions';
import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';
import * as vacationService from '../services';
export async function getVacations(request, context) {
return {
status: 200,
jsonBody: vacationService.getVacations(); // Data access logic
};
};
app.http('get-vacations', { // API route
methods: ['GET'],
route: 'vacations',
authLevel: 'anonymous',
handler: getVacations
});
Sobald Sie die Struktur der Azure Functions-App verstanden haben, können Sie Ihren Code so organisieren, dass er der Struktur der ursprünglichen Node.js Express-App entspricht.
In der nächsten Übung erstellen Sie die Functions-App und verschieben den Code vom Express-Server in Functions.