Google Cloud Functions で Express を使用する

Google App Engine Node.js + Express + Pugを使って、簡単なアプリを書こうと思ったりしたのだが、サーバー側はAPIにしようとすると、Firebase + Angular に慣れてしまっているので、画面側を書くのが非常に面倒くさい。やはり、Firebaseが全て揃っていて便利。

Coud Functions をGAEのように利用できればやりたいことは達成できる。

肝心の無料枠にもFunctions対応している(細かい話はわからないが十分余裕がありそうな雰囲気)なので、firebase init でFirebaseプロジェクトを作成し、functions ディレクトリの中で、

1.インストール

express と TypeScript 用の型情報をインストール。

$ npm install --save express
$ npm install --save-dev @types/express

2.実装

index.ts で、Express のルーターを、Functions として公開する。

import * as functions from 'firebase-functions';
import * as express from 'express';
const app: express.Express = express();

const router: express.Router = express.Router()
app.use(router);

router.get('/test', (req, res) => {
    res.send('TEST!');
});

export const api = functions.https.onRequest(app);

3.エミュレータで実行

firebase emulators:start で、エミュレータが実行される。

package.json に定義されているので、npm run serve を実行する

$ npm install -g firebase-tools
$ cd functions
$ npm run serve

Functions の エンドポイント api へのリンクが起動ログに表示されている

スクリーンショット 2020 10 30 23 38 21

/api/teset 呼び出しで、Expressに処理され結果が出力された。OK

スクリーンショット 2020 10 30 14 49 04

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です