Firebase Functions — это бессерверная платформа, которая позволяет разработчикам писать и развертывать серверный код, не беспокоясь об управлении инфраструктурой. Его можно использовать для выполнения таких задач, как отправка электронных писем, обработка платежей и запуск моделей машинного обучения.
Express – это популярная веб-платформа для создания веб-приложений с использованием Node.js. Он разработан, чтобы упростить создание веб-приложений и API-интерфейсов, предоставляя набор функций и утилит, которые упрощают общие задачи веб-разработки.
Шаг 1: Создайте новый проект
Первым шагом является инициализация нового проекта. Создайте новую пустую папку проекта:
$ mkdir express-firebase-function
Заходим в созданную папку:
$ cd express-firebase-function
Инициализируйте проект, создав package.json с пакетом npm:
$ npm init -y
Шаг 2. Подключите Firebase
Установите пакеты Firebase, чтобы подключить Firebase и сгенерировать функции Firebase:
$ npm install firebase firebase-tools
Войдите в Firebase в консоли:
$ npx firebase login
Шаг 3. Создайте функцию Firebase
Создайте шаблон функции Firebase с помощью интерфейса командной строки Firebase:
$ npx firebase init functions
Шаг 4. Запустите и протестируйте функцию Firebase
Протестируйте API-интерфейс функции Firebase, вызвав его в первый раз:
$ cd functions $ npm install $ npm run serve
Шаг 5: Добавьте экспресс
Установите Express.js в свой локальный проект, выполнив команду из каталога функций:
$ npm install express --save
Откройте файл /function/index.js
, затем импортируйте и инициализируйте Express.js:
const functions = require('firebase-functions'); const express = require('express'); const app = express();
В пути /
добавьте функцию к этому пути при инициализации функции:
app.get('/', (req, res) => { const date = new Date(); const hours = (date.getHours() % 12) + 1; // London is UTC + 1hr; res.send(` <!doctype html> <head> <title>Time</title> <link rel="stylesheet" href="/style.css"> <script src="/script.js"></script> </head> <body> <p>In London, the clock strikes: <span id="bongs">${'BONG '.repeat(hours)}</span></p> <button onClick="refresh(this)">Refresh</button> </body> </html>`); });
Попробуйте добавить еще одну конечную точку для возврата счетчика BONG в качестве API в разделе /api
:
app.get('/api', (req, res) => { const date = new Date(); const hours = (date.getHours() % 12) + 1; // London is UTC + 1hr; res.json({bongs: 'BONG '.repeat(hours)}); });
Экспортируйте приложение Express.js как функцию HTTPS:
exports.app = functions.https.onRequest(app);
Шаг 6: Измените конфигурацию для Express
В вашем файле firebase.json
перепишите конфигурацию, чтобы разрешить Express.js обслуживать различные подпути, которые мы настроили:
{ "hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "**", "function": "app" } ] } }
Если вам понравилась эта история и вы хотели бы поддержать меня (и тысячи других писателей)
пожалуйста, подпишитесь и подпишитесь, чтобы получать все обновления и стратегии.
Спасибо!