Node.jsćććÆćØć³ćććć°ć©ćć³ć°ć
ē°”åć§ęč»ćŖNestJSć§å§ćć¾ćććļ¼
ćć¼ććććÆćØć³ćććŖććć¹ćć§ććļ¼
ęµ®äøććNode.jsćć¬ć¼ć ćÆć¼ćÆćNestJSćéćć¦
äøę©é²ćć ćććÆćØć³ćéēŗ
ä½éØć§ćć¾ćć
What is NestJS?
NestJSćÆćTypeScriptļ¼TypeScriptļ¼ććµćć¼ćććå¹ēēć§ć¹ć±ć¼ć©ćć«ćŖNode.jsć®ćµć¼ćć¼ć¢ććŖć±ć¼ć·ć§ć³ćć¬ć¼ć ćÆć¼ćÆć§ćć ExpressćFastifyćŖć©ć®å¼·åćŖćµć¼ćć¼ćć¬ć¼ć ćÆć¼ćÆć®äøć«é«åŗ¦ćŖć¢ć¼ćććÆćć£ćęä¾ćć¾ććććć«ćććć¢ććŖć±ć¼ć·ć§ć³ććć¤ćÆććµć¼ćć¹ļ¼Microserviceļ¼ć«ē°”åć«åå²ć§ććć¹ć±ć¼ć©ććŖćć£ćé«ćć”ć³ććć³ć¹ć容ęćŖćµć¼ćć¼ć¢ććŖć±ć¼ć·ć§ć³ćē°”åć«éēŗć§ćć¾ćć
Why is NestJS?
NestJSćØå¾ę„ć®Node.jsćć¬ć¼ć ćÆć¼ćÆć§ććExpressļ¼Expressļ¼ć®å¤§ććŖéććÆćć¢ć¼ćććÆćć£ę§é ććć¬ć¼ć ćÆć¼ćÆć§ęä¾ććććØć§ćć
ē“ē²ćŖExpressć使ēØćććććøć§ćÆćć«ć³ć©ćć¬ć¼ć·ć§ć³ććććć»ć¹ćčćć¦ćæć¾ććććéēŗč
ććØć«Expressć使ēØććć¢ć¼ćććÆćć£ććæć¼ć³ćÆę¬å½ć«å¤ę§ć§ćććććøć§ćÆćć®č¦ęØ”ć大ćććŖćć«ć¤ćć¦ćéēŗč
ććć¼ć ććØć«ćććøć§ćÆćć®ę§é ćØć¹ćæć¤ć«ćē°ćŖććØćć³ć©ćć¬ć¼ć·ć§ć³ććć»ć¹ć«ćććć³ćć„ćć±ć¼ć·ć§ć³ć³ć¹ććå¢å ćć¾ćććććÆēē£ę§ć®ä½äøćØć”ć³ććć³ć¹ć®é£ććć«ć¤ćŖććć¾ć
NestJSćÆććć®ć¢ć¼ćććÆćć£ć®ę§é ćØćć¶ć¤ć³ććæć¼ć³ććć¬ć¼ć ćÆć¼ćÆć§ęä¾ćć¾ćććć®ćććåéēŗč
ć®ć¢ć¼ćććÆćć£ćēµ±äøććć³ćć„ćć±ć¼ć·ć§ć³ć³ć¹ććåęøććć¹ć±ć¼ć©ćć«ć§å¹ēēćŖéēŗćč”ćććØćć§ćć¾ćć
ć¾ććę¢åć®Expressć§ä½æēØćć¦ććć©ć¤ćć©ćŖćÆććć®ć¾ć¾NestJSć¢ć¼ćććÆćć£ć®äøć§ä½æēØć§ćć¾ććććć«ćććć©ć¼ćć³ć¹ćåäøćććććć«FastifyćéØåēć«ä½æēØććć®ć«ååćŖäŗęę§ćęä¾ćć¾ćć
ćć®ćććŖćć¾ćć¾ćŖå©ē¹ć®ćććć§ćå¤ćć®éēŗč
ćNestJSć«ę³Øē®ćć¦ćć¾ćć
npmtrendsć§åęććNestJSćć¬ć³ć
å
ē¢ćŖéēŗć®ćć
NestJSć®ćć¹ć¦ć
äøć¤ćNestJSć®ććć®Expressć³ć¢ć³ć³ć»ććć®čŖ¬ęļ¼
ćć®ććć«äŗŗę°ćéćć¦ććNestJSćę°ć«ćŖćć¾ćććļ¼ NestJSćē„ć£ćććć¾ćExpressćå¦ć¶åæ
č¦ććććØćć話ćčććććØćććć¾ććę¢åć®ćć¬ć¼ć ćÆć¼ćÆćććåŖćććć¬ć¼ć ćÆć¼ćÆćå¦ć¶äøć§é²å
„éå£ć®ććć«ęććććććć«ćŖćć¾ćć
ćć®ć¬ćć¹ć³ć§ćÆćNestJSćå¦ć¶åć«NestJSćå¦ć¶ććć®Expressć¬ćć¹ć³ćęä¾ćć¾ććć³ć¢ćŖAPIćē“ę„ä½ęććŖćććNestJSć®ć¢ć¼ćććÆćć£ćExpressćéćć¦0ććä½ęćć¾ćć
äŗćåē“ćŖę©č½äøåæć®č¬ē¾©ćÆNopeć
ćŖććøć§ćÆćęå+ćć¶ć¤ć³ććæć¼ć³ć®ēč§£ć¾ć§ć
åć«NestJSć®ę©č½ć«ć¤ćć¦ć®ćæćē„ćććć¾ććć代ććć«NestJSę§é ćäøć¤äøć¤čŖ¬ęćć¤ć¤ććŖććøć§ćÆćęåććć°ć©ćć³ć°ćę§ć
ćŖćć¶ć¤ć³ććæć¼ć³ćå¾ćććććć«č¬ē¾©ćę§ęćć¾ććć
äøćå
¬å¼ęęøć«å
容ćč¾¼ććććä½ē½®ć¾ć§ćē„ćććć¾ćć
č¬ē¾©ć§čŖ¬ęććNestJSé¢é£ć®ę¦åæµćÆćć¹ć¦äøć¤äøć¤å
¬å¼ęęøćęøćäøććŖćććē„ćććć¾ćć
ē§ćē„ć£ć¦ććę¦åæµććććć«ę”å¼µćććććŖćć·ć§ć³ćčæ½å ććććØććÆćč¬ē¾©ć«å¾ć£ć¦äøäŗŗć§ćē“ ę©ćåæēØć§ćć¾ćć
čŖåć§éēŗćć¦ćæć¦ćć ććļ¼
ę¬ēŖćććøć§ćÆć1ļ¼ē«ę
å ±ć³ćć„ććć£
NestJSę§é ć ćć§ćŖććę§ć
ćŖćµć¼ćć¹ć«å
±éćć¦ååØććć³ć¢ę©č½ć«åŗć„ćććē«ę
å ±ć³ćć„ććć£ćå®č·µćććøć§ćÆćAPIććÆćć¼ć³ć³ć¼ćć£ć³ć°ćć¾ććē“ę„ćććøć§ćÆććéēŗććŖćććNestJSćå®éć®å®åć«é©ēØććć®ć«å½¹ē«ć”ć¾ćć
ćē«ę
å ±ć³ćć„ććć£ćå®ę¦ćććøć§ćÆćę¬ēŖćććøć§ćÆć2ļ¼ć©ć³ćć ćć£ććWebć¢ććŖļ¼updatedļ¼ļ¼
NestJSćµć¼ćć¼ćµć¤ćć¬ć³ććŖć³ć°ć使ēØćć¦ćMVCććæć¼ć³ć®ćŖć¢ć«ćæć¤ć Webć¢ććŖć±ć¼ć·ć§ć³ćéēŗćć¾ććććć«ććććµć¼ćć¼ćµć¤ćć¬ć³ććŖć³ć°ļ¼SSRļ¼ćØćÆć©ć¤ć¢ć³ććµć¤ćć¬ć³ććŖć³ć°ļ¼CSRļ¼ć®ēč§£ćć½ć±ććććć°ć©ćć³ć°ćć¤ćć³ććć¶ć¤ć³ćMVCćć¶ć¤ć³ććæć¼ć³ćŖć©ććć¾ćć¾ćŖę¦åæµćå¾ććć¾ćć NestJSć²ćØć¤ć§ćć«ć¹ćæććÆéēŗć¾ć§ļ¼
ćć©ć³ćć ćć£ććWebć¢ććŖćę¬ēŖćććøć§ćÆććććøć§ćÆćć«å¾ććå¦ć¶
ę¬å½ć®å®åćć¦ćć¦ļ¼
ā
ćććÆćØć³ćéēŗč
ćØććć³ććØć³ćéēŗč
ć®ć³ć©ćć¬ć¼ć·ć§ć³ć·ććŖćŖć
å®ę¦ćććøć§ćÆććé²č”ććŖććAPIć ććä½ęććć®ć§ćÆćŖććććć³ććØć³ćć³ć¼ććęä¾ćć¾ććććć¦ćč¬ē¾©ć§äøē·ć«ä½ę„ććććć³ććØć³ćéēŗč
ćååØćććØä»®å®ććć·ććŖćŖćęććŖććčŖ¬ęćć¾ććććć«ćććå®åć«ććć¦ććććÆćØć³ćéēŗč
ćØććć³ććØć³ćéēŗč
ćå
±åä½ę„ććéć«ēććåÆč½ę§ć®ććåé”ć«åƾćć解決ēćå¾ććć¾ćć
ā
ćććøć§ćÆćå±éćØćµć¼ćć¼éēØć¾ć§ļ¼
ćććøć§ćÆććä½ęććć ćć§ćÆćŖććAWS ćÆć©ć¦ćć³ć³ćć„ć¼ćć£ć³ć°ććÆćććøć使ēØćć¦ä½ęćććµć¼ćć¹ćå®éć«ćććć¤ććę¹ę³ććē„ćććć¾ćć
ć©ć®ćććŖć¹ćć«ćå¦ć³ć¾ććļ¼
NestJS
ćć¹ć
Express
ćØćÆć¹ćć¬ć¹
MongoDB
ć¢ć³ć“ć«DB
Mongoose
ćć³ć°ć¼ć¹
Node.js
ćć¼ć
PM2ćAWS
ćµć¼ćć¼ęä½
ćććŖę¹ćø
ććććć§ćć
Node.js(ćć¼ć)
ćććÆćØć³ćććć°ć©ćć³ć°ćø
å
„éćććę¹
NestJSćå¦ć¶
欲ććć®ć§ćććå
„ćå£ć®éå£
é«ćć¦å¤§å¤ć ć£ćę¹
Expressćć¬ć¼ć ćÆć¼ćÆć®
äøč¶³ćåćć
ćåøęć®ę¹
å®ę¦ćććøć§ćÆććØćć¦
NestJSćå®åć«
é©ēØćććę¹
ććććę¹ć«ćå½¹ē«ć”ć¾ćć
ā
ćŖććøć§ćÆćęåććć°ć©ćć³ć°ććć¶ć¤ć³ććæć¼ć³ćå¦ć³ććę¹
ā
ćććÆćØć³ćéēŗććć£ććććććę¹
č¬ē¾©ćÆä»å¾ć
å¼ćē¶ćę“ę°ććć¾ćć
ęč”ćÆå¤åćē¶ćć¾ććéå»ć«ęøććć³ć¼ććē¾åØć§ćē“ćććØććŖććØćććć¾ć§å¦ćć ććØććŖććØććčØčćććć¾ćć NestJSćć¼ćøć§ć³ćć¢ććć°ć¬ć¼ććććććććčÆćć¹ćć«ćå¦ć¶ććć«ćć¢ććć°ć¬ć¼ćććććć¼ćøć§ć³ć«åććć¦ć¬ćć¹ć³ćååŗ¦ę“ę°ćć¾ćć