ModelをClassで実装する

ツイート
2021年07月12日
2021年07月14日

環境

  • Next.js 11.x
  • Firebase

準備

modelsディレクトリを作成する

モデルは、競合しやすいので、UserModelのように〇〇Modelにする。

Userモデルの作成

models/user.js
export default class UserModel { constructor(name) { this.name = name } // インスタンスメソッド sayName() { console.log(this.name) } // クラスメソッド(静的メソッド) static async findAndCreate(uid) { const res = await fetch('/api/user/get-and-create', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ uid: uid }) }) const data = await res.json() return new UserModel(data.name) // インスタンス化して返す } }

Userモデルをインスタンス化して使う

js
const user = await UserModel.findAndCreate(uid) console.log(user.name) user.sayHello()