![](https://habrastorage.org/storage3/a88/084/859/a880848599088fabb12d122e9f9aa398.jpg)
ãNode.jsã¯ãæ¬æ Œçãªãµã€ããWebã¢ããªã±ãŒã·ã§ã³ã«ã¯é©ããŠããŸããããå°ããªAPIã®äœæã«ã®ã¿é©ããŠããŸããã
ããã¯ãã«*ãããã§ãã ç§ã¯ãããèšããªããã°ãªããŸããã
翻蚳è ããïŒæè¿ãIonut-Cristian Florescuã«ããèå³æ·±ãèšäºããéåžžã®ïŒãæšæºãïŒWebãããžã§ã¯ããäœæããããã«Node.jsã䜿çšããããšã«ã€ããŠcoderwall.comã«æ²èŒãããŸããã ãããèªãåã«ãç§ã¯èšäºã®ã¿ã€ãã«ã«å®å šã«åæããŸããããä»ã§ã¯ç§ã®æèŠã¯å€å°å€ãããŸããã èè ã®ç«å Žã¯å€ãã®ç¹ã§è°è«ã®äœå°ããããããããŸãããã圌ã®è°è«ã¯éåžžã«èå³æ·±ããã®ã§ãã ããã«ã€ããŠèªåã®æèŠãããå Žåã¯ãã³ã¡ã³ãã«æ®ããŠãã ããã
ç§ã¯ãããã®èšèãäœåºŠãèããã®ã§ã圌ãã¯ãã§ã«ç§ãå°ãããŸããã åºæ¬çã«ã圌ãã¯Node.jsãåºæ¬çãªtodoãã¥ãŒããªã¢ã«ããã¬ã€ãã以å€ã®ç®çã§äœ¿çšããããšã®ãªã人ã ãçŸåšã®ãã¬ã³ãã«ã€ããŠèªã¿ããããèªåèªèº«ã¯éçºããŠããªããç䌌éçºè ããŸãã¯ãè³¢ã人ã ãããæ¥ãŠããŸããæ·±å»ãªããšã¯äœããããŸããã
ãããããããã®ã»ãã«ãæããã«åœŒãã¯ããã§ã¯ãªããšèããåæ¢ãªæ°ããäžçããããŸãã Klout ã Geeklist ã Transloadit ã Cloud9 ããã®ä»å€ãã®äººããã®ããŒãžã§çŽ¹ä»ããŸãã ã
圌ãã¯ãã¹ãŠééã£ãŠããŸããïŒ
ããããããã§ãããã®æ ¹æ ã®ãªãç¥è©±ã¯ã©ãããæ¥ãã®ã§ããããïŒ
å€ãããŒã¿
ãŸã第äžã«ãå®è£ ã®ããŒã¹ãéãã«ãããããããNode.jsã¯ãŸã è¥ããã¯ãããžãŒã§ãã 圌女ã¯ãã¯ãæªçã§ã¯ãããŸããããNode.jsã®ããŒã±ãã£ã³ã°èªå€§åºåãæè¡èšäºã圌女ã«è¿œãã€ããŠããªãããã«ããŸã ååã«éãéçºããŠããŸãã å®éãNode.jsã®å©ç¹ãšããã§ãªãããšãè°è«ãããã©ãŒã©ã ã®èšäºãšãããã¯ã®ã»ãšãã©ã¯ãéåžžã«æ代é ãã§ãã
ç°éŠäººãšç°æåŸ
第äºã«ãWebéçºããã³ããã°ã©ãã³ã°èšèªã¯ã»ãšãã©åžžã«å®æçåŽæã®å¯Ÿè±¡ã§ããããããã®åéã®å€ãã®äººã ã¯JavaScriptããæ¬åœã®ãããã°ã©ãã³ã°èšèªãšã¯èŠãªããŠããŸããã ãŸããããã¯å®å šã§ã¯ãªããããããŸããããçŸæç¹ã§ã€ã³ã¿ãŒãããäžã§æãåºã話ãããŠããèšèªã§ããã®ã«ååã§ãã
ãã³ãŒã«ããã¯å°çã
ã»ãšãã©ã®Node.jséçºè ã¯ãã€ãã³ãæåã®æ§è³ªã®ãããé 次å®è¡ãå¿ èŠãšããNode.jsã§ã®æäœã¯éåžžã«å°é£ã§ããããšãèªèããŠããå¿ èŠããããŸãã ç§ã®æèŠã§ã¯ãããã¯ããããNode.jsã®æ倧ã®åŒ±ç¹ã§ãããšåæã«æ倧ã®åŒ·ãã§ããããŸãã 匷åã§ããããŒã«ãç¥ã£ãŠããã°ãä¿¡ããããªãã»ã©ã®æ°ã®åææ¥ç¶ãåŠçããããã®åºç€ãç¯ãããã§ãããããããPHPã.NETããŸãã¯RoRã䜿çšããŠåŸããããããæ¡éãã«å€§ããã§ãããã ã»ãšãã©ã®äººã¯ãã®ãããªã³ãŒããåãé€ãããšãæ£åœã«æ±ããŠããããã匱ç¹ïŒ
![](https://habrastorage.org/storage3/f3c/298/65a/f3c29865a8de629b1388790fa83f7393.jpg)
åããã¯ã°ã©ãŠã³ãæäœã¯ãã³ãŒã«ããã¯ã§çµæïŒãŸãã¯ãšã©ãŒïŒãè¿ããŸãã ããã®è¯ãé¢ã¯ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãæäœã®å®äºãåŸ æ©ããã®ããããã¯ãããªãããšã§ãããå¥ã®ãªã¯ãšã¹ããåŠçãããªã©ãçŸæç¹ã§ä»ã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããã¢ããªã±ãŒã·ã§ã³ãé«éã«ä¿ã¡ããŠãŒã¶ãŒãæºè¶³ãããŸãã ãã€ãã¹é¢ã¯ãå€ãã®ããã¯ã°ã©ãŠã³ãæäœïŒããšãã°ãäžéšã®ããŒã¿ã«ã¢ã¯ã»ã¹ããããïŒãããå Žåãã³ãŒããcodeããªããç解ãã«ãããªãããšã§ãã
è¯ããã¥ãŒã¹ã¯ããã®åé¡ã解決ããã®ã«ååãªãšã¬ã¬ã³ããªæ¹æ³ãããããšã§ãïŒ Async.jsã¯ããããæãããç¥ãããŠããŸãããCoffeeScriptã䜿çšããŠããå Žåã¯ã IcedCoffeeScript㧠ãã·ã³ãã«ã§åŒ·åãªéåæãããŒå¶åŸ¡æé©åãã®æ¬¡ã®ã¹ããããå¿ ãæ€èšããå¿ èŠããããŸãã å°ãåã«æåã«Node.jsã«ç®ãåãããšãã«ã¯ããŸã泚æãæã£ãŠããŸããã§ããããä»ã§ã¯ããã€ãã®ãããžã§ã¯ãã§äœ¿çšããåŸãåŸ ã€ããšãªãã³ãŒããæ³åã§ããŸãã ããã¯ãäžé£ã®ã·ãŒã±ã³ã·ã£ã«æäœããŸãã¯ã·ãŒã±ã³ã·ã£ã«ã¿ã¹ã¯ãšãã©ã¬ã«ã¿ã¹ã¯ã®çµã¿åãããããå Žåãæãäžè¬çãªã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ã«ãšã£ãŠçæ³çãªãœãªã¥ãŒã·ã§ã³ã ãšæããŸãã
![](https://habrastorage.org/storage3/b44/32a/f38/b4432af38b47102d4665edfbe9ef5a60.jpg)
Node.jsãšã³ã·ã¹ãã ã«ã¯Railsã®ãããªãã¬ãŒã ã¯ãŒã¯ããããŸãã
èšèª/ãã©ãããã©ãŒã ã®åé¡ãæ®ããŠããããééã£ãç¥è©±ã ãšèšããŸãã å人çã«ã¯ãRubyãšRailsã倧奜ãã§ãããäžå°èŠæš¡ã®Webãããžã§ã¯ãã§ã¯å€å°åé·ã§ãããã³ãŒãã®æ¬åœã®ãã¹ã¿ãŒã«ãªãã®ã奜ãã§ãã å°èŠæš¡ãªãããŒãžã³ãŒãããŒã¹ããå§ããŠæ¡åŒµããå¿ èŠã«å¿ããŠå¿ èŠãªãšãã«ã¢ãžã¥ãŒã«ãè¿œå ããããšã奜ã¿ãŸãã ãããã£ãŠã Express.jsã¯ãæãããšæ¡åŒµæ§ã®å®ç§ãªãã©ã³ã¹ãæäŸãããšèããŠããŸãã ãŸãã Connectã¯ïŒExpressãçµã¿èŸŒãŸããŠããïŒRackã®ãã¹ãŠã®æ©èœãæäŸããããã«è±ããªãšã³ã·ã¹ãã ãæäŸããŸãã ã»ãšãã©ãExpressãšSinatraãæ¯èŒããããšã¯ç¥ã£ãŠããŸãããExpressã¯ãã以äžã®ãã®ã ãšæããŸããããŒãã³ã¢ã«ããŒã§ãããRailsãåé·ãããããšãèªããŠãããšèããŸããã
ãã ããNode.jsã䜿çšããŠããŠRailsã«æå¿ããŠããå Žåã¯ã Tower.jsãŸãã¯Geddyã«æ³šæããå¿ èŠããããŸãã
ããã±ãŒãžããã¡ã€ã«ç®¡ç
ãã¡ãããNode.jsã®äžçã§ã¯ã ã¹ããã±ããã«å¹æµãããã®ã¯ãããŸãããïŒ å®éã«ãããŸãã 1ã€ã§ã¯ãããŸããã Node.jsã¯ãã®ãããªãã®ãçŸããå Žæã§ãã Bower ã Brewer.js ã Piler-ãããã®ååã®äžéšã®ã¿ã§ãã
UglifyJS Mihai Bazon 'ãããŠNode.jsã§ãå®è¡ãããŸãã
CoffeeScriptïŒAccelerated JavaScript Developmentã®èè ã§ããTrevor Burnhamãconnect-assetsã äœæããŸãã ãããã¯çŸåšAndrew Dunkmanã«ãã£ãŠãµããŒããããŠããŸãã
ã·ã³ãã«ã ã匷åãªä»£æ¿æ段ãå¿ èŠãšããéçºè ã®ããã«ãæ°ãæåã«ãªãŒãã³ãœãŒã¹ã§ASPAãšASPA-Expressãæçš¿ããŸããã
ãããã£ãŠãéžæã§ãããã®ã¯ãããããããŸãã
ãã³ãã¬ãŒããšã³ãžã³ã¯ã©ããªã£ãŠããŸããïŒ ç§ã®æèŠã§ã¯ãžã§ã€ããšã¹ã¿ã€ã©ã¹ã§ãæé«ã§ãã
é床ãšäžŠè¡æ§ããã¹ãŠã§ã¯ãªã
ããããé床ãšäžŠè¡æ§ã¯ãã¹ãŠã§ã¯ãããŸããããéåžžã«éèŠã§ãã ãä»ã®ãšãããPHP / .NET / Rubyã䜿çšããŸãããµã€ããžã®ãã©ãã£ãã¯ã1æ¥ãããæ°å人ã«å¢ãããããµãŒããŒã®æ°ãå¢ããã ãã§ããã
ããããæããã«ãããã¯èšããããç°¡åã§ãã GitHubã§ããæã åé¡ãæ±ããŠããŸã-å€ãã®äººãæã è¿·æãªãŠãã³ãŒã³ã®ãšã©ãŒããŒãžãèŠãããšããããšæããŸãã
ãããŠãããªãã®ãµã€ãã«äœå人ãã®èšªåè ãç²åŸããåã«ãããªãã¯ããªããããããã®ãéãæã£ãŠããããšãä¿èšŒã§ããŸããã ããã¯éåžžãéã®é åºã§çºçããŸãã
ãŸããGoogleæ€çŽ¢ãããããåã«ã眮ãããµã€ãã«ã€ããŠèãæ©äŒããããŸããã ãããŠãããªãã¯ç¢ºãã«ãããããªãã«èµ·ããããšãæãŸãªãããªããªãããªã³ã©ã€ã³ããžãã¹ã®çŸæç¹ã§ã¯ãGoogleããããªãã®å人ãã§ãªããã°ãããªãã¯åã«ååšããªãããã ã
ãããã£ãŠããµã€ãã®é床ãèœãšãããšãªã倧éã®ãã©ãã£ãã¯ãåŠçããæ©èœãäžèŠã«ãªãããšã¯ãããŸããã ç¹ã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ãšãµããŒãã«å€é¡ã®è²»çšãæ¯æãå¿ èŠããªãå ŽåïŒãããçŽç²ãªCã§æžã人ã¯ããŸããïŒã
åªããNode.jséçºè ã®äžè¶³
ãªããªã Node.jsã¯JavaScriptã«åºã¥ããŠãããå€ãã®Webéçºè ããé©åãªãµãŒããŒéçºçµéšã®æ¬ åŠãã§åŒãä»ããŸããïŒã€ãŸããåºæ¬çãªãã¶ã€ã³ãã¿ãŒã³ã«ç²ŸéããŠããŸããïŒã ããã¯ããçšåºŠçå®ã§ãããã»ãšãã©ã®æ°èŠåå ¥è ã¯åŒãç¶ãNode.jsããé¢ãããšæããŸãã
ããã«ãä»ã®ãã©ãããã©ãŒã ããã¬ãŒã ã¯ãŒã¯ããŸãã¯èšèªã«ãåãããšãåœãŠã¯ãŸããŸãã å€ãã®éçºè ãããŸãããåªç§ãªéçºè ã¯ã¯ããã«å°ãªãã§ãã ããã«ãã»ãšãã©ã®å Žåãåžžèã®ããªãã®éšåãå®å šæ§ã®æ¬ åŠãè£ããŸãã
倧äŒæ¥ã¯ãŸã Node.jsã䜿çšããŠããŸãã
çŽ æŽãããã å°ãªããšãç§ã®äžçã§ã¯ã倧äŒæ¥ã¯.NETãšJ2EEã䜿çšããŠããŸãã ããã«è¡ãããã®ã§ããã°ã.NETãšJ2EEã䜿ãç¶ããMicrosoftãšOracleã®ã»ãããŒã«å®æçã«åå ããŠãã ãããScalaã詳ãã調ã¹ãŠã¿ãŠãã ããã
ããã¯ç§ã®æèŠã§ãã äžå€ã§ã¯ãããŸããããå°ãªããšãæ£åœåãããŠãããšèšããŸãã ç§ã®ãã£ãªã¢ãéããŠãCïŒãJavaãPHPãRubyãJavaScriptãªã©ã§ã³ãŒããæžããŸããã ç§ã¯ãæ·±å»ãªãããžãã¹ã¢ããªã±ãŒã·ã§ã³ã«åãçµã¿ãæ å ±æè¡ã®åéã§ã¯ãªãæ°éäŒæ¥å®¶ãšããŠçãæ®ãããšãã§ããã®ã§ãITã®ããªãºã ãéããŠã§ã¯ãªããäžçãèŠãããšãåŠã³ãŸããã ããããNode.jsãçºèŠãããšããã³ãŒãã£ã³ã°ããã»ã¹ã¯ééããªãããå€ãã®åã³ãããããå§ããŸããã
ãã®ãã¹ãŠã«åºã¥ããŠãã«ãŒããã¢ã®æåãªèªåè»è²©å£²ãµã€ãã§ããLeasingSH.roãåç·šéããéã«Node.jsãéžæããããšã«ã¯çãããããŸããã§ãã ã ããã¯å€§ããªãããžã§ã¯ãã§ã¯ãããŸããããããã¯ç§ãã¡ã話ããŠããå žåçãªWebãããžã§ã¯ããšãŸã£ããåãã§ãã
![](https://habrastorage.org/storage3/141/bcc/92f/141bcc92f59edd43667e4280c61574a3.jpg)
Node.jsã䜿çšããå©ç¹ã®1ã€ã¯ããããããããŸã§ã«åŸããããããå€ãã®ãã©ãã£ãã¯ãåŠçã§ããããšã§ãã ããã«ãåäžã®WebãµãŒããŒã䜿çšããŠããã«ãããããããå¿çæéãèããççž®ãããŸããã
![](https://habrastorage.org/storage3/8d8/9c4/ecd/8d89c4ecd7146cee77c573d5a8a2fb55.png)
ãŸããã³ãŒãã¯ããèªã¿ããããä¿å®ãããããªããŸããã æ°ãããã¯ãããžãŒã®äœ¿çšã«ããããœãŒã¹ã³ãŒãã®ç®¡çã«BitBucketã䜿çšããããã¿ã¹ã¯ã®æ確ãªåé¢ãªã©ãäž»ã«Jadeãã³ãã¬ãŒãã®äœ¿çšã ASPAã§ã®æ¥ç¶ãã¡ã€ã«ã®å¹ççãªå§çž®ããã³ç®¡çãªã©ãæ°ããæ©èœãéæ¥çã«å°å ¥ãããŸãïŒå€ãPHPãšã¯ç°ãªããŸãïŒã
çµè«ãšããŠãNode.jsã§å®è£ ãããããå žåçãªWebãããžã§ã¯ããèŠãŠã¿ãããšæããŸãã ãããã®å€ãã¯ãŸã PHPã§å®è£ ãããŠããŸãã 誀解ããªãã§ãã ãããPHPãæ°å¹Žé䜿çšããŸããããå察ã§ã¯ãããŸããããæã«ã¯å°æ¥ãèŠæ®ããå¿ èŠããããŸãã