Планирование миграции с Node.js и Express в Функции Azure
Чтобы спланировать переход серверного приложения Express на бессерверный, можно разбить приложение Express на три основных области:
- Сервер Express, основная часть которого находится в файле server.ts
- Маршруты, которые находятся в маршрутах или папке
- Логика доступа к данным, которая находится в службах или папках
Чтобы рефакторинг кода из Express в Функции Azure, вы планируете эти действия, которые начнут реализовываться в следующем уроке:
- Создайте приложение Функции Azure.
- Скопируйте папку служб из Node.js Express в приложение Функции Azure. Это работает, так как службы данных не привязаны к серверу Express.
- Создайте API-интерфейс функции для каждой конечной точки маршрута.
- Получение отпусков
- Добавление отпусков
- Обновление отпуска
- Удаление отпуска
- Обновите код функции, чтобы использовать логику доступа к данным в службах или папках.
- Обновите маршруты функций, чтобы соответствовать исходным маршрутам Express.
Пример express route
Это простой пример маршрута Express, который получает отпуск от службы отпуска. Обратите внимание, что параметры обработчика маршрутов являются req
объектами и 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
});
Пример маршрута Функции Azure
Это простой пример обработчика маршрутов Функции Azure и определения маршрута, который получает отпуск от службы отпуска. Обратите внимание, что параметры обработчика маршрутов являются request
объектами и 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
});
После понимания структуры приложения Функции Azure можно упорядочить код для сопоставления структуры исходного приложения Node.js Express.
В следующем упражнении вы создадите приложение "Функции" и переместите код с сервера Express на функции.