Search
🎄

Firebase Cloud 파일 분리

생성일
2020/11/19 14:38
태그
Firebase
Firebase Cloud Function
속성
속성 1
속성 2
2021/01/30 08:55

Pain Point

명확한 파일 분리 없이 index.js 에서만 개발 하다보니 4개의 기능 뿐이지만 1개의 파일 길이가 1,000 라인이 됨
유지보수 차원에서 깔끔한 구조를 가져갈 필요성을 느낌
NodeJS 의 Router 기능을 이용해 기능별로 파일을 분리하여 관리할 수 있습니다.

youtube.js (분리된 자바스크립트 파일)

// 1. express와 router 모듈을 추가합니다 var express = require('express'); var router = express.Router(); // 2. index.js 에 있던 함수를 그대로 옮겨옵니다 app.get('/v1/trends/google', async (req, res) => { request.get('https://trends.google.co.kr/trends/trendingsearches/daily/rss?geo=KR', function (error, response, body) { if (response.statusCode == 200) { let regex = /<title>(.*?)<\/title>/g; let raw = body.match(regex) raw.shift() let keywords = raw.map((v) => { return v.replace("<title>", "").replace("</title>", "") }) res.status(200).json(keywords); } }); return; }); // 3. module export 를 통해 index.js 에서 현재 js를 이용할 수 있도록 합니다 module.exports = router;
JavaScript
복사

index.js (시작점이 되는 자바스크립트 파일)

const functions = require('firebase-functions'); const admin = require('firebase-admin'); const express = require('express'); const app = express(); admin.initializeApp() const firestore = admin.firestore(); var request = require('request'); var route = express.Router(); var youtube = require('./router/youtube.js'); // 👍
JavaScript
복사
require 를 통해 분리한 파일을 가져옵니다.

디렉토리 구조

어떻게 Router 파일들을 관리하는 것이 Best Practice 인 줄은 모르겠으나,
index.js 위치에 router directory를 만들고 router directory 하위에 각 분리한 js 파일들을 두는 것이 일반적인 듯 하다. (대부분의 블로그 글)