A Node.js és az Express azure Functionsbe való migrálásának megtervezése

Befejeződött

A háttérbeli Express-alkalmazás kiszolgáló nélkülire váltásának megtervezéséhez az Express alkalmazást három fő területre bonthatja:

  • Az Express-kiszolgáló, amely többnyire a server.ts-ben található
  • Az útvonalak, amelyek az útvonalakban/ mappában találhatók
  • Az adatelérési logika, amely a szolgáltatásokban/ mappában található

A kód Express-ből Azure Functionsbe való újrabontásához megtervezheti ezeket a műveleteket, amelyeket a következő leckében fog megvalósítani:

  1. Hozzon létre egy új Azure Functions-alkalmazást.
  2. Másolja a szolgáltatási mappát Node.js Expressből az Azure Functions alkalmazásba. Ez azért működik, mert az adatszolgáltatások nincsenek az Express-kiszolgálóhoz kötve.
  3. Hozzon létre egy új függvény API-t minden útvonalvégponthoz.
    • Szabadságok lekérése
    • Szabadságok hozzáadása
    • Szabadság frissítése
    • Szabadság törlése
  4. Frissítse a függvénykódot az adatelérési logika használatára a szolgáltatásokban/ mappában.
  5. Frissítse a függvényútvonalakat az eredeti Express-útvonalaknak megfelelően.

Példa expressz útvonalra

Ez egy egyszerű példa egy expressz útvonalra, amely szabadságokat kap a szabadságszolgáltatástól. Figyelje meg, hogy az útvonalkezelő paraméterei és req res objektumai.

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
});

Példa az Azure Functions útvonalára

Ez egy egyszerű példa egy Azure Functions-útvonalkezelőre és útvonaldefinícióra, amely szabadságokat kap a szabadságszolgáltatástól. Figyelje meg, hogy az útvonalkezelő paraméterei és request context objektumai.

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
});

Miután megismerte az Azure Functions-alkalmazás struktúráját, rendszerezheti a kódot az eredeti Node.js Express-alkalmazás struktúrájának megfelelően.

A következő gyakorlatban létre kell hoznia a Functions alkalmazást, és a kódot az Express-kiszolgálóról a Functionsre kell áthelyeznie.