
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ïŒ ãªã