알고리즘 문제
기 Express 라우팅을 Firebase Functions에 올리기
gaelim
2022. 10. 3. 02:34
반응형
표현이 애매한데, Express 서비스를 만들었는데, 이 것을 Firebase Functions에 추가하고 싶다면 간단히, 라우팅 모듈만 미들웨어로 연결해주면 된다.
단, 기 Express 서비스가 Functions로의 안전한 착륙이 쉽진 않을 것이다. 당연히, DB, 등의 모든 디펜던시에 대해 검토할 필요가 있으니까. 여기서 말하는 것은, 그냥 Express 형태를 유지하며 Firebase Functions에 등록하는 것에 대해서만 다룬 것이다.
기록해두는 이유는 공식문서를 굉장히 어이없게 찾았기 때문이다 -_-;;
HTTP 요청을 통한 함수 호출 https://firebase.google.com/docs/functions/http-events
기존 Express 앱 사용
App을 onRequest()의 인수로 사용하면 전체 Express 앱을 HTTP 함수에 전달할 수 있습니다. 다음과 같이 상용구 코드를 미들웨어로 이동할 수 있습니다.
const express = require('express');
const cors = require('cors');
const app = express();
// Automatically allow cross-origin requests
app.use(cors({ origin: true }));
// Add middleware to authenticate requests
app.use(myMiddleware);
// build multiple CRUD interfaces:
app.get('/:id', (req, res) => res.send(Widgets.getById(req.params.id)));
app.post('/', (req, res) => res.send(Widgets.create()));
app.put('/:id', (req, res) => res.send(Widgets.update(req.params.id, req.body)));
app.delete('/:id', (req, res) => res.send(Widgets.delete(req.params.id)));
app.get('/', (req, res) => res.send(Widgets.list()));
// Expose Express API as a single Cloud Function:
exports.widgets = functions.https.onRequest(app);
문서 끝.
반응형