Planowanie migracji z usług Node.js i Express do usługi Azure Functions
Aby zaplanować przesunięcie aplikacji zaplecza Express na bezserwerowe, możesz podzielić aplikację Express na trzy główne obszary:
- Serwer Express, który jest głównie w elemencie server.ts
- Trasy, które znajdują się w folderze routes/ folder
- Logika dostępu do danych, która znajduje się w usługach/ folderze
Aby refaktoryzować kod z usługi Express do usługi Azure Functions, należy zaplanować te akcje, które zaczną implementować w następnej lekcji:
- Utwórz nową aplikację usługi Azure Functions.
- Skopiuj folder services z Node.js Express do aplikacji usługi Azure Functions. Działa to, ponieważ usługi danych nie są powiązane z serwerem Express.
- Utwórz nowy interfejs API funkcji dla każdego punktu końcowego trasy.
- Uzyskiwanie urlopów
- Dodawanie urlopów
- Aktualizowanie urlopu
- Usuwanie urlopu
- Zaktualizuj kod funkcji, aby używać logiki dostępu do danych w usługach/ folderze.
- Aktualizowanie tras funkcji w celu dopasowania do oryginalnych tras express.
Przykład usługi Express Route
Jest to prosty przykład trasy ekspresowej, która pobiera urlopy z usługi urlopowej. Zwróć uwagę, że parametry procedury obsługi tras to req
obiekty i res
.
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
});
Przykład trasy usługi Azure Functions
Jest to prosty przykład procedury obsługi tras i definicji trasy usługi Azure Functions, która pobiera urlopy z usługi urlopowej. Zwróć uwagę, że parametry procedury obsługi tras to request
obiekty i context
.
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
});
Po zapoznaniu się ze strukturą aplikacji usługi Azure Functions możesz zorganizować kod, aby dopasować go do struktury oryginalnej aplikacji Node.js Express.
W następnym ćwiczeniu utworzysz aplikację usługi Functions i przeniesiesz kod z serwera Express do usługi Functions.