Closed13

SNS アプリをつくる

ganyariyaganyariya

作りたい SNS アプリのために 技術と勉強をまとめていく.

フロントエンド: Next.js + TypeScript
バックエンド: Django-Ninja
認証: Firebase Authentication (Twitter)

バックエンドは FastAPI と悩んだが,ORM が FastAPI だと使いづらいので Django-Ninja に

デプロイは Vercel (Next.js) Cloud Run (Django-Ninja) を考えている
SQLは Cloud SQL にする予定
フロントも全部GCPにおいていいかもしれない

ganyariyaganyariya

https://docs.nestjs.com/modules

各モジュールは自動的に shared module となる。
一度作成したモジュールは、同じインスタンスとしてあらゆる場所から再利用できる(DIのおかえげ)

そのためには exports 配列に追加する必要がある。

import { Module } from '@nestjs/common';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
@Module({
  imports: [],
  controllers: [UsersController],
  providers: [UsersService],
  exports: [UsersService],
})
export class UsersModule {}

ただ、この UsersModule を import したモジュールが、usersServiceインスタンスを共有できるのがよくわからないな

コントローラのクラス定義とかで、 private さっきのサービス名 とかにすると自動的に注入されるのかな

@Controller('users')
export class UsersController {
  constructor(private usersService: UsersService) {}

@Global で全体に設定できる。ただし、データベースなど、いろんなところで使うものに止めよう。
export したものは、利用側のmodule で import しないとおそらく inject されない

ganyariyaganyariya

とりあえず大まかにはわかったので
実際に調べながらやっていく

このスクラップは2021/07/17にクローズされました