
éåžžãWebéçºã§ã¯ãã¹ã¿ãã¯ã®ãã¹ãŠã®ã¬ãã«ã§ç°ãªãããã°ã©ãã³ã°èšèªã䜿çšããŸãã MongoDBããŒã¿ããŒã¹ãExpressããã³AngularJSãã¬ãŒã ã¯ãŒã¯ãããã³Node.jsãã¯ãããžãŒã¯ãMEANã¹ã¿ãã¯ã圢æããŸããMEANã¹ã¿ãã¯ã¯ããã¹ãŠã®ã¬ãã«ã§1ã€ã®èšèªïŒJavaScriptïŒã®ã¿ã䜿çšãã匷åãªãã©ãããã©ãŒã ã§ãã MEANã¹ã¿ãã¯ã¯ããã®ã·ã³ãã«ããšè²»çšå¯Ÿå¹æã®ããã«éçºè
ãäŒæ¥ã«ãšã£ãŠé
åçã§ããããšã³ããŠãŒã¶ãŒã¯ãã®ã¹ããŒããšå¿çæ§ããMEANã¢ããªã±ãŒã·ã§ã³ãæããŠããŸãã
JavaScriptãæçããŸããã 圌ã®ãããã§ããã£ã1ã€ã®ããã°ã©ãã³ã°èšèªã§Webã¢ããªã±ãŒã·ã§ã³ãæåããæåŸãŸã§äœæã§ããããã«ãªããŸããã MEANã¹ã¿ãã¯ã«ã¯ãçŸå Žã§ã¯ã©ã¹æé«ã®ãã¯ãããžãŒãå«ãŸããŠããŸãã MongoDBãããŒã¿ããŒã¹ãšããŠãExpressããµãŒããŒãµã€ãWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãšããŠãAngularJSãã¯ã©ã€ã¢ã³ããã¬ãŒã ã¯ãŒã¯ãšããŠãNodeããµãŒããŒãã©ãããã©ãŒã ãšããŠååŸããŸãã
ãã®æ¬ã§ã¯ããããã®åãã¯ãããžãŒãšãããããã¹ã¿ãã¯ãšããŠé£æºãããæ¹æ³ã玹ä»ããŸãã ãã®æ¬å
šäœãéããŠãåã¢ããªã±ãŒã·ã§ã³ã«çŠç¹ãåœãŠãã¢ããªã±ãŒã·ã§ã³ã®å
šäœçãªã¢ãŒããã¯ãã£ã«ã©ã®ããã«é©åããããèŠãŠãäœæ¥ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã ãããã£ãŠããã®æ¬ã¯ããªã¹ãããããã¹ãŠã®æè¡ãšãããã®äœµçšã«æ
£ããŠãããšããäºå®ã«çŠç¹ãåœãŠãŠããŸãã
æ¬æžå
šäœãéããŠããæšå¥šããããœãªã¥ãŒã·ã§ã³ãã®æŠå¿µã¯èµ€ã糞ãéããŠå®è¡ãããŸãã ãã®åºçç©ã¯ãMEANã¹ã¿ãã¯ã䜿çšããŠçŽ æŽãããã¢ããªã±ãŒã·ã§ã³ãäœæããããã®äžçš®ã®åºçºç¹ã§ããããã§ãç§ãã¡ã¯è¯ãç¿æ
£ããã¹ãŠãæ£ããè¡ããäºåã«ãã¹ãŠãèšç»ããèœåã®éçºã«éäžããŸãã
ãã®æ¬ã§ã¯ãHTMLãCSSããŸãã¯åºæ¬çãªJavaScriptã®äœ¿ç𿹿³ã«ã€ããŠã¯èª¬æããŠããŸãããèªè
ã¯ãã§ã«ãããã«ç²ŸéããŠããããšãåæãšããŠããŸãã CSS Boo tstrap CSSãã¬ãŒã ã¯ãŒã¯ã®åºæ¬ã®éåžžã«çãèŠçŽãå«ãŸããŠããŸãã ããã«ãããŒãã¹ã¯åªããJavaScript
ã¢ããªã±ãŒã·ã§ã³ã§ã -ãã®çè«ãæšå¥šããããœãªã¥ãŒã·ã§ã³ããã³ããããã³äžå
·åã æ©ããããèŠãŠãçããªãã
ããŒãããã
ãã®æ¬ã¯ã11ã®ç« ãéããŠããªããæ
ã«æåŸ
ããŸãã
第1ç« ã§ã¯ããã«ã¹ã¿ãã¯éçºãæ€èšããå©ç¹ã«ã€ããŠèª¬æããMEANã¹ã¿ãã¯ã®ã³ã³ããŒãã³ããæ€èšŒããŸãã
第2ç« ã§ã¯ãç¿åŸããã³ã³ããŒãã³ãã®ç¥èã«åºã¥ããŠãã³ã³ããŒãã³ããå
±æããŠããŸããŸãªãã®ãäœæããããã®ãªãã·ã§ã³ã«ã€ããŠèª¬æããŸãã
第3ç« ã§ã¯ãExpressã玹ä»ããMEANãããžã§ã¯ãã®äœæããã³æ§ææ¹æ³ããã°ããåŠç¿ããã®ã«åœ¹ç«ã¡ãŸãã
第4ç« ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®éçããŒãžã§ã³ãæ§ç¯ããããšã«ãããExpressãããæ·±ãçè§£ããŸãã
第5ç« ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã«é¢ããæ¢åã®ç¥èã䜿çšããMongoDBãšMongooseã䜿çšããŠãå¿
èŠãªããŒã¿ã¢ãã«ãèšèšããã³æ§ç¯ããŸãã
第6ç« ã§ã¯ãããŒã¿APIãäœæããå©ç¹ãšããã»ã¹ã«ã€ããŠèª¬æããŸãã ExpressãMongoDBãMongooseã䜿çšããŠREST APIãäœæããŸãã
第7ç« ã§ã¯ãéçExpressã¢ããªã±ãŒã·ã§ã³ããREST APIãååŸããããšã«ãããREST APIãã¢ããªã±ãŒã·ã§ã³ã«é¢é£ä»ããŸãã
第8ç« ã¯ãAngularJSã¹ã¿ãã¯ã®ç޹ä»ã§ããRESTAPIã䜿çšããŠããŒã¿ãååŸããæ¹æ³ãªã©ãæ¢åã®WebããŒãžã®ã³ã³ããŒãã³ããäœæããéã«äœ¿çšããæ¹æ³ã«ã€ããŠèª¬æããŸãã
第9ç« ã§ã¯ãAngularã䜿çšããåäžããŒãžã¢ããªã±ãŒã·ã§ã³ã®äœæã®åºæ¬ãæŠèª¬ããä¿å®ã容æãªã¢ãžã¥ãŒã«åŒã®ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã€ããŠèª¬æããŸãã
第10ç« ã¯ç¬¬9ç« ã®è³æã«åºã¥ããŠããã1ããŒãžã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãç¶ããŠããŸãã ããã«ãããããã€ãã®éèŠãªæŠå¿µãå°å
¥ãããAngularã¢ããªã±ãŒã·ã§ã³ã®è€éããå¢ããŸãã
第11ç« ã§ã¯ãMEANã¹ã¿ãã¯ã®ãã¹ãŠã®éšåã«ã€ããŠèª¬æããŸãããŠãŒã¶ãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ç»é²ãšãã°ã€ã³ãèš±å¯ããèªèšŒãã¢ããªã±ãŒã·ã§ã³ã«è¿œå ããå¿
èŠãããããã§ãã
æ¬ããã®æç²
2.3ã æè»ãªMEANã¢ãŒããã¯ãã£éçº
AngularJSã§ã®äœæ¥ããã«ã·ã§ã®ææã«äŒŒãŠããå Žåãã¹ã¿ãã¯ã®æ®ãã¯ã¬ã¬ãŒãžã«è¿œå ã®Audi RS6ãååšããããšã«å¯Ÿå¿ããŸãã å€ãã®äººã
ã¯å®¶ã®åã®ã¹ããŒãã«ãŒã«æ³šæãæããã¬ã¬ãŒãžã«ãããŠãããŒãµã«ã«ãŒã«æ°ä»ããªãã§ãããã ãããããŸã ã¬ã¬ãŒãžã«è¡ã£ãŠå¥œå¥å¿getçã«ãªã£ããããã®ãã³ãããã®äžã«Lamborghini V10ãšã³ãžã³ãããããšãããããŸãã ãã®ã¹ããŒã·ã§ã³ã¯ãŽã³ã¯ãèŠãç®ä»¥äžã®ãã®ãæäŸã§ããŸãïŒ
MongoDBãExpressãNode.jsãäžç·ã«äœ¿çšããŠREST APIãäœæããããšã¯ãåäŸãåŠæ ¡ã«é£ããŠè¡ãããã ãã«Audi RS6ã䜿çšããããšã«äŒŒãŠããŸãã 圌ããšåœŒã®äž¡æ¹ã¯åªããèœåãæã¡ããã®ä»äºãéåžžã«ããŸãè¡ããŸããã圌ãã¯ãã以äžã®èœåããããŸãã
ãããã®ãã¯ãããžãŒã䜿çšããŠäœãåŸããããã«ã€ããŠã¯ã第1ç« ã§ãã§ã«ç°¡åã«èª¬æããŸããããããããããã€ãã®åºçºç¹ã瀺ããŸãã
-MongoDBã¯ããã€ããªæ
å ±ãä¿åããã³ã¹ããªãŒãã³ã°ã§ããŸãã
-Node.jsã¯ãWebãœã±ããã䜿çšãããªã¢ã«ã¿ã€ã æ¥ç¶ã«ç¹ã«é©ããŠããŸãã
-Express-çµã¿èŸŒã¿ãã³ãã¬ãŒãã䜿çšããWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã
ã«ãŒãã£ã³ã°ãšã»ãã·ã§ã³ç®¡çã
ããã¯æ±ºããŠå®å
šãªãªã¹ãã§ã¯ãªãããã®æ¬ã§ããããã¹ãŠã®ãã¯ãããžãŒã®ãã¹ãŠã®å¯èœæ§ãæ€èšããããšã¯çµ¶å¯Ÿã«ã§ããŸããã ããã«ã¯æ¬ãå¿
èŠã§ãïŒ ç§ãã§ããããšã¯ãç°¡åãªäŸãæããŠãMEANã¹ã¿ãã¯ã®åéšåãçµã¿åãããŠæé©ãªãœãªã¥ãŒã·ã§ã³ãèšèšããæ¹æ³ã瀺ãããšã§ãã
2.3.1ã ããã°ãšã³ãžã³ã®èŠä»¶
ç§ãã¡ããã§ã«ç¥ã£ãŠããããã°ãšã³ãžã³ã®ã¢ã€ãã¢ãèŠãŠããããäœæããããã«MEANã¹ã¿ãã¯ãæé©ã«èšèšããæ¹æ³ãèŠãŠãã ããã
éåžžãããã°ãšã³ãžã³ã«ã¯2ã€ã®éšåããããŸãã ããã¯ãã€ã³ã¿ãŒãããäžã§è»¢å£²ããã³é
åžãããããšãæåŸ
ããèªè
åãã®èšäºãæäŸããå
¬éæåã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ãã ããã°ãšã³ãžã³ã«ã¯ã管çè
ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãããã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãããã°ã®ææè
ãæ°ããèšäºãæžããããããã°ã管çãããã§ããŸãã ããã2ã€ã®éšåã®äž»ãªç¹åŸŽã®äžéšãå³ã«ç€ºããŸãã 2.2ã

å³ã®ãªã¹ããèŠãŠãã ããã 2.2ãããã2ã€ã®éšåã®ç¹æ§ã®éã§é«åºŠãªççŸãèŠãããããã ããã°èšäºã®ããã®ãªããã§äœã€ã³ã¿ã©ã¯ãã£ããªç°å¢ãšã管çã€ã³ã¿ãŒãã§ãŒã¹ã®ããã®ãªããã§é«åºŠã«ã€ã³ã¿ã©ã¯ãã£ããªç°å¢ãå¿
èŠã§ãã ããã°èšäºã¯é«éã§ããŒãããå¿
èŠããããŸã-çŽåž°çãäžããããã«ã管çãšãªã¢ã¯ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ãšå
¥åããããŒã¿ã«ãã°ããå¿çããå¿
èŠããããŸãã æåŸã«ããŠãŒã¶ãŒã¯éåžžãããã°ãšã³ããªãçæéã ãæ®ããŸããã管çã€ã³ã¿ãŒãã§ã€ã¹ã¯å
¬éãããŠããããåã
ã®ãŠãŒã¶ãŒãé·æéããã°å
ã§äœæ¥ã§ããäžæ¹ã§ãããã°ãšã³ããªãä»ã®ãŠãŒã¶ãŒãšå
±æãããå ŽåããããŸãã
åã«èª¬æããSPAã®æœåšçãªåé¡ãšããã°æçš¿ã®ç¹æ§ãèãããšãå€ãã®å¶ç¶ãèŠã€ãããããããŸããã ããã念é ã«çœ®ããŠãèªè
ã«ããã°ãšã³ããªãæäŸããããã«SPAã䜿çšããªãããšã«ããå¯èœæ§ããããŸãã åæã«ãSPAã¯ç®¡çã€ã³ã¿ãŒãã§ã€ã¹ã«æé©ã§ãã
ããã§ã¯ã©ãããŸããïŒ ããããæãéèŠãªããšã¯ãããã°ã®èªè
ãç¶æããããšã§ããããªãã®ããã°ã«å¯Ÿããå°è±¡ããã¬ãã£ãã§ããå Žåã圌ãã¯åã«æ»ã£ãŠãããæçš¿ãå
±æããŸããã ããã°ã泚ç®ãããŠããªãå Žåãããã¬ãŒã¯åã«ããã°ãžã®æžã蟌ã¿ã忢ããããå¥ã®ãã©ãããã©ãŒã ã«åãæ¿ããŸãã ç¹°ãè¿ãã«ãªããŸããã管çã€ã³ã¿ãŒãã§ãŒã¹ã®å¿çãé
ããå¿çãé
ããããããã°ã®ææè
ã¯ãè¹ããéãåºããŸããã 誰ãã幞ãã§ãããããã°ãšã³ãžã³ãåäœããŠããããšãã©ã®ããã«ç¢ºèªã§ããŸããïŒ
2.3.2ã ããã°ãšã³ãžã³ã®ã¢ãŒããã¯ãã£
çãã¯ããã¹ãŠã®å Žé¢ã§1ã€ã®ãœãªã¥ãŒã·ã§ã³ãæ¢ãå¿
èŠã¯ãªããšããããšã§ãã 2ã€ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã ãµãŒããŒããçŽæ¥é
ä¿¡ããå¿
èŠããããªãŒãã£ãšã³ã¹æåã®ã³ã³ãã³ããšãSPAãšããŠå®è¡ããéå
¬éã®ã€ã³ã¿ã©ã¯ãã£ããªç®¡çã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã 管çã€ã³ã¿ãŒãã§ãŒã¹ããå§ããŠããããã®åã¢ããªã±ãŒã·ã§ã³ãåå¥ã«èŠãŠã¿ãŸãããã
管çã€ã³ã¿ãŒãã§ã€ã¹ïŒAngularJSã®SPA
AngularJSã®äžã«æ§ç¯ãããSPAã管çã€ã³ã¿ãŒãã§ãŒã¹ã«çæ³çã§ããããšã¯ãã§ã«èª¬æããŸããã ãããã£ãŠããšã³ãžã³ã®ãã®éšåã®ã¢ãŒããã¯ãã£ã¯éåžžã«éŠŽæã¿ããããŸããMongoDBãExpressãããã³Node.jsã§æ§ç¯ãããREST APIãšãããã³ããšã³ãã®AngularJSäžã®1ããŒãžã®ã¢ããªã±ãŒã·ã§ã³ã§ãã å³2.3ã¯ããã®å€èгã瀺ããŠããŸãã
ããã°ã®ãšã³ããªïŒã©ãããã°ããã§ããïŒ
ããã°ã®ãšã³ããªã«ã€ããŠèãããšããã¹ãŠãå°ãè€éã«ãªããŸãã
MEANã¹ã¿ãã¯ããREST APIã«ã¢ã¯ã»ã¹ãã1ããŒãžã®AngularJSã¢ããªã±ãŒã·ã§ã³ãšããŠã®ã¿æ³åããŠãã ããã ãããã®å Žåã§ããJavaScriptãšMEANã¹ã¿ãã¯ã䜿çšããå Žåã¯ãSPAã®åœ¢åŒã§ã€ã³ã¿ãŒãã§ã€ã¹ããŒããäœæã§ããŸãã ããããããã¯æåã®è§£æ±ºçã§ã¯ãããŸããã MEANã¹ã¿ãã¯ã¯åã«ãã®å Žåã«é©ããŠããªãããšãããããå¥ã®ãã¯ãããžãŒã¹ã¿ãã¯ãéžæããŸãã ããããããªãã¯ãããå¿
èŠãšããŸããïŒ ãã£ããããJavaScriptãå¿
èŠã§ãã
ãã®ãããMEANã¹ã¿ãã¯ã詳ããèŠãŠããã®ãã¹ãŠã®ã³ã³ããŒãã³ãã«ã€ããŠèããŠãã ããã Expressã¯Webã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã§ããããšãç¥ã£ãŠããŸãã Expressã¯ãã³ãã¬ãŒããšã³ãžã³ã䜿çšããŠããµãŒããŒäžã§HTMLã³ãŒããäœæã§ããããšããåãã§ãããã Expressã¯URLã«ãŒãã£ã³ã°ãšMVCãã¿ãŒã³ã䜿çšã§ããããšãç¥ã£ãŠããŸãã ããªããèããå¿
èŠããããŸãïŒExpressã¯çãã§ããïŒ
ããã°ãšã³ããªïŒExpressã®äœ¿çš
ãã®ããã°ã®ã·ããªãªã§ã¯ããµãŒããŒããçŽæ¥HTMLã³ãŒããšã³ã³ãã³ããé
ä¿¡ããããšããŸãã«å¿
èŠã§ãã Expressã¯ãããç¹ã«ããŸãè¡ããŸããæåãããã³ãã¬ãŒããšã³ãžã³ã®éžæè¢ãæäŸããŸãã HTMLã³ã³ãã³ãã«ã¯ããŒã¿ããŒã¹ããã®ããŒã¿ãå¿
èŠã«ãªãããããã®ããã«REST APIãå床䜿çšããŸãïŒãããæ¬¡ã®ã»ã¯ã·ã§ã³ã§æé©ãªã¢ãããŒãã§ããçç±ã詳ããèŠãŠãããŸãïŒã ãã®ãããªã¢ãŒããã¯ãã£ã®åºç€ãå³ã«ç€ºããŸãã 2.4ã
MEANã¹ã¿ãã¯ãŸãã¯å°ãªããšããã®äžéšã䜿çšããŠãããŒã¿ããŒã¹ããŒã¹ã®ã³ã³ãã³ãããµãŒããŒãããã©ãŠã¶ãŒã«çŽæ¥é
ä¿¡ã§ããã¢ãããŒããåŸãããŸãã ããããããã§åé¡ã¯çµããã§ã¯ãããŸããã MEANã¹ã¿ãã¯ã¯ããã«æè»ã§ãã
ããã°ãšã³ããªïŒã¹ã¿ãã¯ãããå®å
šã«äœ¿çšãã
Expressã¢ããªã蚪åè
ã«ããã°ã³ã³ãã³ããé
ä¿¡ããŠããã®ãèŠãŸããã 蚪åè
ããµã€ãã«ã¢ã¯ã»ã¹ã§ããããã«ããå¿
èŠãããå Žåãããããèšäºã«ã³ã¡ã³ãã远å ããããã«ããŠãŒã¶ãŒã»ãã·ã§ã³ã远跡ããå¿
èŠããããŸãã Expressã¢ããªã±ãŒã·ã§ã³ã§ããã«MongoDBã䜿çšã§ããŸãã
ãŸããé¢é£ããæçš¿ããããŒããŒãå
¥åã®åã«èªåè£å®ãããæ€çŽ¢ãã£ãŒã«ããªã©ãããã°æçš¿ã®æšªã«ããã€ãã®ããŒã¿ãåçã«è¡šç€ºããããšãã§ããŸãã ãããã¯ãAngularJSã䜿çšããŠå®è£
ã§ããŸãã èŠç¢ºèªïŒAngularJSã¯SPAå°çšã§ããã ãã§ãªããéçãªããŒãžã«äœããã®ã€ã³ã¿ã©ã¯ãã£ãããŒã¿ã远å ããããã«ã䜿çšã§ããŸãã å³2.5ã¯ããããã®ãªãã·ã§ã³ã®MEANããŒããããã°ã³ã³ããŒãã³ãã¢ãŒããã¯ãã£ã«ã©ã®ããã«è¿œå ããããã瀺ããŠããŸãã
ããã§ã蚪åè
ã«ã³ã³ãã³ãã衚瀺ããREST APIãšã®å®å
šãªMEANã¹ã¿ãã¯ã«åºã¥ããã¢ããªã±ãŒã·ã§ã³ã®çžäºäœçšãæŽçã§ããŸãã
ããã°ãšã³ãžã³ïŒãã€ããªããã¢ãŒããã¯ãã£
ãã®æ®µéã§ã¯ãREST APIã䜿çšãã2ã€ã®åå¥ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã å°ãèšç»ãç«ãŠããšãã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã®éšåã§äœ¿çšãããäžè¬çãªREST APIã«ãªããŸãã 2ã€ã®ã¯ã©ã€ã¢ã³ãåŽã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ãã1ã€ã®REST APIã䜿çšããã¢ãŒããã¯ãã£ã®æŽåæ§ãå³ã«ç€ºããŸã 2.6ã
ããã¯ããããžã§ã¯ãã®èŠä»¶ãæºããããã«ãMEANã¹ã¿ãã¯ã®ããŸããŸãªéšåãããŸããŸãªã¢ãŒããã¯ãã£ã«æ¥ç¶ããæ¹æ³ã瀺ãç°¡åãªäŸã§ãã ãªãã·ã§ã³ã¯ãã³ã³ããŒãã³ãã®ç¥èãšçµã¿åãããå Žåã®å·¥å€«ã«ãã£ãŠã®ã¿å¶éãããŸãã MEANã¹ã¿ãã¯çšã®æ£ããã¢ãŒããã¯ãã£ã¯ãããŸããã
»æ¬ã®è©³çްã«ã€ããŠã¯
ãåºç瀟ã®ãŠã§ããµã€ããã芧ãã ãã»
ã³ã³ãã³ã»
æç²ã¹ã¿ãã©ã€ã¶ãŒã®ã¯ãŒãã³ã25ïŒ
ãªã