1.è¬çŸ©ç޹ä»ãšåçš®çè«
NestJSè¬çŸ©ãåŠã¶ããã®åºæ¬çãªç¥èãåŠã³ãŸãã KeynoteããŒã¹ã§é²è¡ãããåã«NestJSã®å
容ã ãã§ãªãããââãã¯ãšã³ãã®ãšã³ãžãã¢ã¬ã€ããNode.jsã®ç°¡åãªãªãŒããŒãã¥ãŒãšæè¡çãªèª¬æãHTTPãNestJSã®ç޹ä»ãªã©ãå®åãå§ããåã«å¿
ãå¿
èŠãªç¥èã å«ãŸããŠããŸãã
2. ç°å¢èšå®
NestJSãåŠã¶ããã«macOSãšWindowsã§ç°å¢èšå®ãè¡ããŸãã
3. Node.jsãšExpressã䜿çšãããµãŒããŒæ§æ
Node.jsã§åºæ¬çã«æäŸããããã±ãŒãžã§ããHTTPã䜿çšããŠãµãŒããŒãæ§æããNestJSãå
éšçã«äœ¿çšããŠããããŒã人æ°ã©ã€ãã©ãªã§ããExpressã䜿çšãããµãŒããŒæ§æãç°¡åã«é²ããé·æãšçæãèŠãŠã¿ãŸãããã
4. ãããžã§ã¯ãã³ã³ã»ããã®æŽç
è¬çŸ©ã§äœ¿çšããInstagram SNSã®ã³ã³ã»ããã«ã€ããŠèª¬æããŸãã
5. ã³ã³ãããŒã©(Controller)
NestJSã®REST APIãæ§æããæåé¢ã®èŠçŽ ã®1ã€ã§ããã³ã³ãããŒã©ã«ã€ããŠåŠã³ãŸãã
6. ã¯ãšãªãšãã©ã¡ãŒã¿ (Query and Parameters)
ã³ã³ãããŒã©ããããŒã¿ãåãåãããã®ããã€ãã®æ¹æ³ã®ãã¡ãQueryãšParameterã䜿çšããæ¹æ³ã«ã€ããŠåŠã³ãŸãã
7. ãµãŒãã¹(Service)
ã³ã³ãããŒã©ã§å®è¡ããããžãã¯ãæ
åœãããµãŒãã¹ãå®è£
ããŸãã
8. Module, Provider and Inversion of Control (IoC)
APIãæ§æããè€æ°ã®ã³ã³ããŒãã³ãã1ã€ã«ãŸãšãã圹å²ã§ããã¢ãžã¥ãŒã«ã«ã€ããŠåŠã³ãIoCã³ã³ãããä»ããProvider Dependency Injectionãã©ã®ããã«å®çŸãããããåŠã³ãŸãã
9. SQLãšDocker
ãã¹ãã§ããŒã¿ããŒã¹ã飿ºããããã®åºæ¬çãªSQLç¥èãåŠã³ãŸããããã«ãPostgresqlãå®è¡ãããšãã«äœ¿çšããDockerã®äœ¿ãæ¹ãç°¡åã«åŠã³ãŸãã
10. TypeORMã§ããŒã¿ããŒã¹ã飿ºãã
æ¢åã®ã¡ã¢ãªã§ã®ã¿ç®¡çããŠããããŒã¿ãé·æçã«ç®¡çã§ããããã«ãTypeORMãå©çšããŠPostgresqlãšé£åããŠããŒã¿ã管çããæ¹æ³ãåŠã³ãŸãã
11. TypeORMçè«ïŒæ©èœæŽçïŒ
TypeORMæ©èœã«ã€ããŠå
šäœçã«åŠã¶çè«è¬çŸ©ã§ãããã䜿çšããã颿°ãšãã©ã¡ãŒã¿ã«ã€ããŠåŠã³ãŸãã
12. Table Relation (é¢ä¿)
One to One RelationshipãOne to Many RelationshipãMany to One RelationshipãMany to Many Relationshipã«ã€ããŠãçè«ãšTypeORMã䜿çšããå®è£
æ¹æ³ãåŠã³ãŸãã
13. ãããã¬ã®äœ¿çš
VSCodeã§NestJSãããã¬ãèšå®ãããããã¬ã䜿çšããŠãããã°ããæ¹æ³ãåŠã³ãŸãã
14. Authentication (èªèšŒ)
ããŒã¯ã³ã䜿çšããèªèšŒæé ãšãã°ã€ã³äŒå¡ç»é²ã·ã¹ãã ã®æ§ç¯æ¹æ³ã«ã€ããŠåŠã³ãŸãã
15. Pipe(ãã€ã)
å€ãæ€èšŒããŠå€æãããã€ãã®ããŸããŸãªäœ¿ãæ¹ãæ¢ããŸãã
16. ç¶æ¿ãå©çšãã BaseModel ã®å®è£
TypeORMã§ããŒãã«ãå®è£
ãããšãã«ç¹°ãè¿ãããããããã£ãšColumnãäœæããªãæ¹æ³ã«ã€ããŠåŠã³ãŸãã
17. PgAdmin
PgAdminã䜿çšããPostgresqlããŒã¿ããŒã¹ããŒãã«ã®åç
§æ¹æ³ã«ã€ããŠåŠã³ãŸãã
18. GuardïŒã¬ãŒãïŒ
ãšã³ããã€ã³ããšã³ã³ãããŒã©ãä¿è·ããã®ã«åœ¹ç«ã€Guardã«ã€ããŠåŠã³ãŸãã
19. Custom Decorator (ã«ã¹ã¿ã ãã³ã¬ãŒã¿)
çŽæ¥ãã³ã¬ãŒã¿ãäœæããã©ã®ããžãã¯ããã³ã¬ãŒã¿ã䜿çšããŠå®è£
ã§ãããã調ã¹ãŸãã
20. Postmanæ©èœã®æ·±å
åã«ãªã¯ãšã¹ããéä¿¡ããæ©èœã®ä»ã«ãç°å¢å€æ°ã®äœ¿çšæ³ãç°å¢èšå®æ³ããã¹ãèšå®æ³ãããŒã¯ã³æèŒæ³ãªã©ãAPIãã¹ããããå¹ççã«ããæ©èœãåŠã³ãŸãã
21. Class Validator
ã¯ã©ã¹ã®ããããã£ã Decorator ãå©çšããŠæ€èšŒã§ããæ©èœã§ãã Class Validator ã«ã€ããŠåŠã³ãŸãã
22. Class Transformer
ã¯ã©ã¹ããããã£ãDecoratorã䜿çšããŠå€æã§ããæ©èœã§ããClass Transformerã«ã€ããŠåŠã³ãŸãã
23. Pagination åºæ¬æ© - Cursor Pagination
ã«ãŒãœã«ããŒã¹ã®ããŒãžããŒã·ã§ã³ãå®è£
ããæãåºæ¬çãªæ¹æ³ã«ã€ããŠåŠã³ãŸãã
24. Pagination Basic - Page Pagination
ããŒãžããŒã¹ã®ããŒãžããŒã·ã§ã³ãå®è£
ããæãåºæ¬çãªæ¹æ³ã«ã€ããŠåŠã³ãŸãã
25. Paginationã®æ·±å - äžè¬åãã
ããŸããŸãªãšã³ããã€ã³ãã§ç°¡åã«ããŒãžããŒã·ã§ã³ãå®è£
ã§ããããã«ããžãã¯ãäžè¬åããæ¹æ³ãåŠã³ãŸãã
26. Config ã¢ãžã¥ãŒã«ã®äœ¿çš
NestJSãã¬ãŒã ã¯ãŒã¯ã«ç°å¢å€æ°ã泚å
¥ããæ¹æ³ã§ããConfigã¢ãžã¥ãŒã«ã®äœ¿ãæ¹ã«ã€ããŠåŠã³ãŸãã
27. File Upload - ã¯ã©ã·ãã¯æ¹åŒ
æãå€å
žçãªãã¡ã€ã«ã®ã¢ããããŒãæ¹æ³ã«ã€ããŠåŠã³ãŸãã
28. Static File ServingïŒã¹ã¿ãã£ãã¯ãã¡ã€ã«ããµãŒãã¹ããïŒ
NestJSã§éçãã¡ã€ã«ãå€éšã«ãµãŒãã¹ã§ããèšå®æ¹æ³ã«ã€ããŠåŠã³ãŸããåã®ã»ã¯ã·ã§ã³ã«é¢é£ä»ããããŠãã¢ããããŒããããã¡ã€ã«ããªã³ã¯çµç±ã§æ€çŽ¢ããæ¹æ³ãåŠã³ãŸãã
29. ãã¡ã€ã«ã¢ããããŒã - ã©ã€ã³ã¢ããããŒãæ¹æ³
ãã©ãŒã ããŒã¿ã䜿çšããŠãã¹ãŠã®ããŒã¿ãäžåºŠã«ãŸãšãã圢åŒã§ã¯ãªãããã¡ã€ã«ãæåã«ã¢ããããŒãããŠãããã¡ã€ã«ãžã®ãã¹ã®ã¿ãæäŸããŠãåŸæ¥ã®æ¹æ³ãããæ¯èŒçé«éãªæ¹æ³ã§ãã¡ã€ã«ã¢ããããŒããå®è£
ããæ¹æ³ãåŠã³ãŸãã
30. Transaction (ãã©ã³ã¶ã¯ã·ã§ã³)
All or Nothingæ©èœã§ããããŒã¿ããŒã¹ã®ãã©ã³ã¶ã¯ã·ã§ã³æ©èœãTypeORMã䜿çšããŠå®è£
ããæ¹æ³ãåŠã³ãŸãã
31. Interceptor (ã€ã³ã¿ãŒã»ãã¿ãŒ)
NestJSã®ã€ã³ã¿ãŒã»ãã¿ã®äœ¿ãæ¹ãšç°¡åãªRxJSã®äœ¿ãæ¹ã«ã€ããŠåŠã³ãŸãã䜿ããããäŸãšããŠããã©ã³ã¶ã¯ã·ã§ã³ãã€ã³ã¿ãŒã»ãã¿ãšããŠå®è£
ããæ¹æ³ãåŠã³ãŸãã
32. Exception Filter (ã¢ã¯ã»ãã·ã§ã³ãã£ã«ã¿)
NestJSã§ä»£è¡šçã«äŸå€åŠçãè¡ãæ¹æ³ã§ããException Filterã®äœ¿ãæ¹ã«ã€ããŠåŠã³ãŸãã
33. Middleware(ããã«ãŠã§ã¢)
NestJSãžã®çä¿¡èŠæ±ã«æåã«é©çšãããããã«ãŠã§ã¢ã«ã€ããŠåŠã³ãŸãã
34. Websocket Socket.IO - åºæ¬æ©
Socket.IOã®åºæ¬çãªäœ¿ãæ¹ãåŠã³ãŸãã
35. Websocket Socket.IO - æ·±å
NestJSãæäŸããSocket IOé¢é£ã®ããŸããŸãªãã³ã¬ãŒã¿ã«ã€ããŠåŠã³ãŸãã
36. ã¢ãžã¥ãŒã«ã®ãã¹ãã£ã³ã°
Post - Commentã®äŸã䜿çšããŠããµãã¢ãžã¥ãŒã«ãäœæããå¿
èŠæ§ãåŠã³ãŸãã
37. RBAC - Role Based Access Control
AdminããŒãžé¢é£ã®ãµãŒããŒæ©èœãæ§ç¯ãããšãã«ç¹ã«éèŠãªRBACããŒã¹ã®APIãå®è£
ããæ¹æ³ãåŠã³ãŸãã
38. Authorization
NestJSã¹ã¿ã€ã«ã§æ¿èªæ©èœãäœæããæ¹æ³ãåŠã³ãŸãã
39. Following System
ãã©ããŒã·ã¹ãã ãå®è£
ããŠã¿ãŠãã ããã
40. Follow Count, Comment Count ã䜿ã
åçš®Countæ©èœé¢é£ããžãã¯ãå®è£
ããŠã¿ãŸãã