規劃從 Node.js 和 Express 移轉至 Azure Functions

已完成

若要規劃將後端 Express 應用程式移轉至無伺服器,您可以將 Express 應用程式細分為三個主要區域:

  • Express 伺服器大多位在 server.ts
  • 路由,位於 routes/ 資料夾中
  • 資料存取邏輯,位於 services/ 資料夾中

若要將程式碼從 Express 重構至 Azure Functions,請規劃這些動作,您會在下一個單元中開始實作:

  1. 建立新的 Azure Functions 應用程式。
  2. services 資料夾從 Node.js Express 複製到 Azure Functions 應用程式。 這樣做可行,因為資料服務不會繫結至 Express 伺服器。
  3. 為每個路由端點建立新的函式 API。
    • 取得假期
    • 新增假期
    • 更新假期
    • 刪除假期
  4. 更新函式程式碼,以在 services/ 資料夾中使用資料存取邏輯。
  5. 更新函式路由以符合原始的 Express 路由。

Express 路由範例

這是從假期服務取得假期的 Express 路由簡單範例。 請注意,路由處理常式的參數是 reqres 物件。

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

Azure Functions 路由範例

這是 Azure Functions 路由處理常式和路由定義的簡單範例,可從假期服務取得假期。 請注意,路由處理常式的參數是 requestcontext 物件。

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

了解 Azure Functions 應用程式的結構之後,您可以組織程式碼以符合原始Node.js Express 應用程式的結構。

在下一個練習中,您會建立 Functions 應用程式,並將程式碼從 Express 伺服器轉移至 Functions。