Planifier la migration de Node.js et Express vers Azure Functions
Pour planifier le passage au mode serverless de l’application back-end Express, vous pouvez décomposer l’application Express en trois zones principales :
- Le serveur Express, qui est principalement dans server.ts
- Les routes, qui se trouvent dans le dossier routes/
- Logique d’accès aux données qui se trouve dans le dossier services/
Pour refactoriser votre code d’Express vers Azure Functions, vous planifiez ces actions que vous allez commencer à implémenter dans l’unité suivante :
- Créez une application Azure Functions.
- Copiez le dossier des services de Node.js Express vers l’application Azure Functions. Cela fonctionne, car les services de données ne sont pas liés au serveur Express.
- Créez une API de fonction pour chaque point de terminaison de route.
- Obtenir des vacances
- Ajouter des vacances
- Mettre à jour des vacances
- Supprimer des vacances
- Mettez à jour le code de fonction pour utiliser la logique d’accès aux données dans le dossier services/.
- Mettez à jour les routes de fonction pour qu’elles correspondent aux routes Express d’origine.
Exemple de route Express
Il s’agit d’un exemple simple de route Express qui obtient des vacances à partir du service de vacances. Notez que les paramètres du gestionnaire de routes sont les objets req
et 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
});
Exemple de route Azure Functions
Il s’agit d’un exemple simple de gestionnaire de routes et de définition de route Azure Functions qui obtient des vacances à partir du service de vacances. Notez que les paramètres du gestionnaire de routes sont les objets request
et 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
});
Une fois que vous comprenez la structure de l’application Azure Functions, vous pouvez organiser votre code pour qu’il corresponde à la structure de l’application Express Node.js d’origine.
Dans le prochain exercice, vous créez l’application Functions et déplacez le code du serveur Express vers Functions.