ãµã€ã¯ã«ã®ãã¹ãŠã®èšäºïŒ
- ã Node.jsã§ã®ã¡ã¢ãªãªãŒã¯ã®ãã³ãã£ã³ã° ã
- ã ããŒããçŒçã«ããŒãããŸã ã
- ã ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã±ãŒãªã³ã°ãç°¡çŽ åããããã«ãã¯ã©ã€ã¢ã³ãã«ã»ãã·ã§ã³ãä¿åããŸã ã
- ã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããŒã1-é£çµãå§çž®ããã£ãã·ã³ã° ã
- ã è² è·ãããã£ãŠãã¯ã©ãã·ã¥ããªããµãŒããŒãäœæããŠããŸã ã
- ã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããŒã2-etagifyã䜿çšããåçã³ã³ãã³ãã®ãã£ãã·ã¥ ã
- ã node-convictã䜿çšããWebã¢ããªã±ãŒã·ã§ã³æ§æã®èª¿æŽ ã
- ã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããŒã3-ãã©ã³ãã®æé©å ã
- ã Node.jsã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºããŒã1 ã
- ã Node.jsã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºããŒã2ïŒããŒã«ããããšããã»ã¹ ã
- ã Node.jsã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºããŒã3ïŒã¢ã¯ã·ã§ã³ã®ããŒã«ã©ã€ãº ã
- ã Awsbox-Amazon Cloudã«Node.jsã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®PaaSã€ã³ãã©ã¹ãã©ã¯ã㣠ã
ãã®èšäºã§ã¯ãããã³ããšã³ãã®ããã©ãŒãã³ã¹ã«ã€ããŠèª¬æãããã«ãœãWebãµã€ããå¯èœãªéãé«éã«ããããã«Mozillaã«ãã£ãŠäœæãããããŒã«ã玹ä»ããŸãã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãä¿èšŒããæãéèŠãªåŽé¢ã®äžéšãèªååããã¢ãžã¥ãŒã«ã§ããconnect-cachifyã®äœ¿çšã«ã€ããŠèª¬æããŸãã
ããããæåã«ãããã©ãŒãã³ã¹ãæ¹åããæãäžè¬çãªæ¹æ³ãèŠãŠã¿ãŸãããã ããã³ããšã³ãã®æé©åã®çµéšãããå Žåã¯ããããã®ã»ã¯ã·ã§ã³ãã¹ãããããŠãconnect-cachifyã䜿çšããŠæåã§è¡ã£ãŠããäœæ¥ãèªåçã«è¡ãæ¹æ³ã説æããèšäºã®æåŸã«ç§»åã§ããŸãã
3ã€ã®ãKãã¯ã©ã€ã¢ã³ãããã©ãŒãã³ã¹
ãããã¯ãŒã¯ã«ã¯ãé«ãããã©ãŒãã³ã¹ãå®çŸããæ¹æ³ã«é¢ããæ å ±ãæºèŒã§ãã ãã¡ãã¡ã§1ã2ããªç§ãç¯çŽããããã®å€ãã®ããªãã¯ããããŸãããæé©åã®åºç€ã¯åžžã«3ã€ã®ãã¯ããã¯ïŒé£çµãå§çž®ããã£ãã·ã³ã°ïŒã§æ§æãããŠããŸãã
é£çµ
é£çµã®ç®çã¯ããµãŒããŒèŠæ±ã®æ°ãæå°éã«ããããšã§ãã ãåãåããã¯é«äŸ¡ã§ãã å€ãã®å ŽåãHTTPæ¥ç¶ãéãæéã¯ãããŒã¿èªäœã転éããæéãããé·ããªããŸãã ç¹ã«ã¢ãã€ã«ããã€ã¹ã§ã¯ããããã¯ãŒã¯ã¬ã€ãã³ã·ãéåžžã«å€§ãããªãå¯èœæ§ããããããäœåãªèŠæ±ããããã³ã«ãµã€ãã®é床ãäœäžããŸãã æºåž¯ç«¯æ«ããEDGEçµç±ã§ãªã³ã©ã€ã³ã¹ãã¢ã«ã¢ã¯ã»ã¹ããå€ãã®ç»åãé 次ããŠã³ããŒããããã®ãèŸãåŸ ã€å¿ èŠããããŸãããïŒ
HTTP 2.0ãããã³ã«ã®æ°ããããŒãžã§ã³ã®ä»æ§ã®åºç€ããã§ã«åœ¢æããŠããæ°ããSPDYãããã³ã«ã¯ãè€æ°ã®ãªãœãŒã¹ã«å¯ŸããèŠæ±ã1ã€ã®HTTPæ¥ç¶ã«çµåã§ããŸãã æ®å¿µãªããããããŸã§ã®ãšããããã®ãµããŒãã¯ChromeãFirefoxãOperaã®ææ°ããŒãžã§ã³ã®ã¿ã§ãã
以åã®ããã«ãæåã¢ãŒãã§è€æ°ã®ãªãœãŒã¹ã1ã€ã«çµåãããšãã©ãã§ãæ©èœããSPDYãåºãé åžãããåŸã§ãæ©èœããŸãã JavaScritãCSSãããã³ç»å-ãªãœãŒã¹ã®åºæ¬çãªçš®é¡ãçµã¿åãããããã®å€ãã®ããŒã«ããããŸãã
JavaScriptãšCSS
ãµã€ããè€æ°ã®å€éšJavaScriptãã¡ã€ã«ã䜿çšããŠããå Žåãããããã¹ãŠã®ãã¡ã€ã«ã1ã€ã«çµåããããšãæ€èšããå¿ èŠããããŸãã ãã©ãŠã¶ã¯ãã¹ã¯ãªããã®èªã¿èŸŒã¿äžã«ããŒãžã®ã¬ã³ããªã³ã°ãäžæåæ¢ããŸãã åãªã¯ãšã¹ãã«ã¯ãªãŒããŒããããå¿ èŠãªããã次ã®äŸã®åäœã¯ãããããé ããªããŸãã
<script src="jquery.min.js"></script> <script src="main.js"></script> <script src="image-carousel.js"></script> <script src="widget.js"></script>
è€æ°ã®ãªã¯ãšã¹ãã1ã€ã«ãŸãšããããšã§ãããŒãæéãå€§å¹ ã«ççž®ã§ããŸãã
<script src="main.production.js"></script>
ã³ãŒããèšè¿°ããŠãããã°ããªããçµåãã¡ã€ã«ãæäœããã®ã¯éåžžã«äžäŸ¿ãªã®ã§ãéåžžãé£çµã¯å®æãããµã€ãã«å¯ŸããŠã®ã¿è¡ãããŸãã CSSãã¡ã€ã«ã¯ãJavaScriptãšãŸã£ããåãæ¹æ³ã§ããŒãžãããŸãã
ç»å
ç»åã®èªã¿èŸŒã¿æã«ãªã¯ãšã¹ãã®æ°ãæžããããã®2ã€ã®äž»ãªææ³ã¯ãURLãšã¹ãã©ã€ãã«ããŒã¿ãåã蟌ãããšã§ãã
ããŒã¿ïŒURI
dataïŒURIã¯ç¹å¥ãªåœ¢åŒã®URLã§ãå°ããªç»åãURLãšããŠHTMLãŸãã¯CSSããã¥ã¡ã³ãã®ããã¹ãã«çŽæ¥åã蟌ãããšãã§ããŸãã ããŒã¿URIã¯ã
img,
ã¿ã°ã®
src
å±æ§ãšCSSã®èæ¯ç»åã®URLã®äž¡æ¹ã§äœ¿çšã§ããŸãã åã蟌ã¿ç»åã¯base64ã§ãšã³ã³ãŒãããããããããå€ãã®ã¹ããŒã¹ãå¿ èŠãšããŸãããéåžžã®ç»åããã1åã®èŠæ±ãå°ãªããŠæžã¿ãŸãã ç»åãååã«å°ããå Žåããªã¯ãšã¹ãæ°ã®æžå°ã«ããã²ã€ã³ã¯ããµã€ãºã®æ倱ããã倧ãããªããŸãã IE6ããã³IE7ã¯ããŒã¿ããµããŒãããŠããŸããïŒURIãããã«çæããŠãã ããã
ã¹ãã©ã€ã
ã¹ãã©ã€ãã¯ããŒã¿ã®åªãã代æ¿æ段ã§ãïŒURIã ã¹ãã©ã€ãã¯ã1ã€ã®å€§ããªç»åã«çµåãããç»åã®ã³ã¬ã¯ã·ã§ã³ã§ãã CSSã䜿çšããŠãããããå°ããªç»åãåãåãããšãã§ããŸãã ã¹ãã©ã€ãã®æ¬ ç¹ã¯ãã¡ã³ããã³ã¹ãšå€æŽã®äžäŸ¿ãã§ãã ã¹ãã©ã€ãã§ç»åãè¿œå ãŸãã¯å€æŽããã«ã¯ãCSSãé©åã«å€æŽããå¿ èŠããããŸãã
åã ã®ç»åã®ã»ããããã¹ãã©ã€ããäœæããããã®å€ãã®ããŒã«ããããŸãã ãããã®1ã€ã¯ãèªã¿èŸŒãŸããç»åã«åºã¥ããŠã¹ãã©ã€ãã®CSSã³ãŒããçæããSprite Cow Webãµã€ãã§ãã
äœåãªãã€ããåé€-çž®å°ãæé©åãå§çž®
è€æ°ã®ãªãœãŒã¹ã1ã€ã«ãŸãšããŠHTTPãªã¯ãšã¹ãã®æ°ãæå°éã«æããããšã¯ããµã€ãã®é«éåã«åãã倧ããªäžæ©ã§ãããããã«å€ããéæã§ããŸãã é£çµåŸããããã¯ãŒã¯çµç±ã§éä¿¡ãããåèšãã€ãæ°ãæžããå¿ èŠããããŸãã ããã¯éåžžãçž®å°ãæé©åãå§çž®ã®åœ¢ã§è¡ãããŸãã
JavaScriptãšCSS
JavaScriptãšCSSã¯ãå¹ççã«ãã€ãã³ã°ãããããã¹ããªãœãŒã¹ã§ãã çž®å°ãšã¯ããã©ãŠã¶ãç¡èŠãããã¹ãŠã®æåãåé€ããããšã§ãã JavaScriptãšCSSã®äž¡æ¹ãå€æããã«ã¯ãäœåãªã¹ããŒã¹ãæ¹è¡ãã³ã¡ã³ããåé€ããããšããå§ããŸãã JavaScriptã®å Žåãããã«å ãžé²ãããšãã§ããŸãã äžéšã®ãããã£ã±ãŒã¿ã¯ãè€æ°æåã®å€æ°åãåäžæåã®å€æ°åã«çœ®ãæããäžèŠãªèšèªæ§æèŠçŽ ãåé€ããåçã®çããã®ã«çœ®ãæããŸãã
人æ°ã®ããJavaScriptçž®å°ããŒã«ã«ã¯ã UglifyJS ã YUICompressorãããã³Google Colsure Compilerãå«ãŸããŸãã CSSã®å ŽåãYUICompressorãšUglifyCSSããã䜿çšãããŸãã
ç»å
ç»åã«ã¯å€ãã®å ŽåãèŠèŠçãªå質ãæãªãããšãªãåé€ã§ããåé·ããŒã¿ãå«ãŸããŠããŸãã ããã¯é£ãããããŸããããç¹å¥ãªããŒã«ã䜿çšããå¿ èŠããããŸãã ç§ãã¡ã®ããŒã ã®Francois Marieuxã¯ã PNGããã³GIFã®æäœã«é¢ããèšäºã§ãã®ãããã¯ã«ã€ããŠãã詳现ã«æžããŠããŸãã
Yahoo! ãªã³ã©ã€ã³ããŒã«Smush.itãæäŸããŠããŸãã ImageOptimã¯ãOSXçšã®åæ§ã®ãªãã©ã€ã³ããã°ã©ã ã§ãã å®å šèªåã¢ãŒãã§åäœããŸããå¿ èŠãªãã¡ã€ã«ããã©ãã°ã¢ã³ãããããããã ãã§ãå€§å¹ ã«ééãæžããããšãã§ããŸãã
èŠèŠçãªå質ã®ããããªäœäžã蚱容ã§ããå Žåãããã«é«ãå§çž®çã§ç»åãå§çž®ã§ããŸãã
ãµãŒããŒã圹ç«ã¡ãŸã
é£çµãšçž®å°ã®åŸã§ããç¯çŽã§ãããã®ããããŸãã ã»ãšãã©ãã¹ãŠã®ãµãŒããŒãšãã©ãŠã¶ãŒã¯ãHTTPãã©ãã£ãã¯ã®å§çž®ããµããŒãããŠããŸãã æãäžè¬çãª2ã€ã®å§çž®ã¹ããŒã ã¯ãdeflateãšgzipã§ãã ã©ã¡ããéåžžã«å¹ççãªå§çž®ã¢ã«ãŽãªãºã ã䜿çšããŠããµãŒããŒãé¢ããåã«ããŒã¿ã®ãµã€ãºãçž®å°ããŸãã
ãã£ãã·ã³ã°
é£çµãšå§çž®ã¯ãæåã«ãµã€ãã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒãæ¯æŽããŸãã 3çªç®ã®ãKã-ãã£ãã·ã³ã°ã¯ãéåžžã®èšªåè ãæ¯æŽããŸãã ãã§ã«ãµã€ãã«ã¢ã¯ã»ã¹ããŠãããŠãŒã¶ãŒã¯ããã¹ãŠã®ãªãœãŒã¹ããªããŒãããªãã§ãã ããã HTTPã¯ããããå®çŸãã2ã€ã®ã¡ã«ããºã ãæäŸããŸã-ãã£ãã·ã¥ãããããããŒãšETagããŸãã¯ãšã³ãã£ãã£ã¿ã°ã
éçãªãœãŒã¹ã®ãã£ãã·ã³ã°ã«é¢é£ããHTTPããããŒã«ã¯2çš®é¡ããããããã¯å€æŽãããããšã¯ãããŸããã ãããã¯ã2ã€ã®HTTPå¿çããããŒãã£ãŒã«ãâ
Expires
ããã³
Cache-Control: max-age
ã§ãã
Expires
ãã£ãŒã«ãã«ã¯ããªãœãŒã¹ãæŽæ°ããå¿ èŠãããæ¥ä»ãæ ŒçŽãããŸãã
max-age
ãªãœãŒã¹ã®å¯¿åœïŒç§åäœïŒã ããããŒã®ãããã®ãã£ãŒã«ããèšå®ãããŠããå Žåããã©ãŠã¶ã¯æå®ãããæéåŸã«ã®ã¿æ¢åã®ãªãœãŒã¹ãèŠæ±ããŸãã
ETagã¯ãªãœãŒã¹ã®ããŒãžã§ã³ã®ã©ãã«ã§ããããªãœãŒã¹ã®ããŒã«ã«ããŒãžã§ã³ããµãŒããŒäžã®çŸåšã®ããŒãžã§ã³ãšäžèŽããããšã確èªããã®ã«åœ¹ç«ã¡ãŸãã Etagã¯ããã€ã§ãå€æŽã§ããåçã³ã³ãã³ãã«é©ããŠããŸãã ETagããªãœãŒã¹ã«ã€ã³ã¹ããŒã«ããããšãããŒãžã§ã³ã確èªããããã«ãã©ãŠã¶ãŒã«æ瀺ããããŒãžã§ã³ãå€æŽãããŠããªãå ŽåããªãœãŒã¹ãããŠã³ããŒãã§ããŸããã ETagã䜿çšãããªãœãŒã¹ã§ã¯ãæ¯åãµãŒããŒããå°éã®æ å ±ãéä¿¡ããå¿ èŠããããããã©ã€ãã¿ã€ã ã瀺ããªãœãŒã¹ã»ã©å¹æçã§ã¯ãããŸããã
匷å¶ãã£ãã·ã¥æ¶å»
Etagããã
Expires
ããã³
max-age
ãã£ãŒã«ãã䜿çšããå©ç¹ã¯ããã©ãŠã¶ãæéåãã®å Žåã«ã®ã¿ãªãœãŒã¹ãèŠæ±ããããšã§ãã ãããäž»ãªæ¬ ç¹ã§ãã ãªãœãŒã¹ãçªç¶å€æŽãããå Žåã¯ã©ããªããŸããïŒ ãã£ãã·ã¥ã匷å¶çã«ã¯ãªã¢ããå¿ èŠãããå ŽåããããŸãã
ããã¯éåžžãURLã«ãªãœãŒã¹ã®ããŒãžã§ã³çªå·ãè¿œå ããããšã«ãã£ãŠè¡ãããŸãã URLãå€æŽãããšããªãœãŒã¹ã®æ°ããããŒãžã§ã³ãããŠã³ããŒããããŸãã
ããšãã°ã寿åœã
example.com/logo.png
example.com/logo.png
ã¯1幎ã§ãããããŽã¯å€æŽãããŠãããå€ãããŒãžã§ã³ãæ¢ã«ããŠã³ããŒãããŠãã人ã¯èª°ã§ã1幎åŸã«æ°ããããŒãžã§ã³ã衚瀺ãããŸãã ããã«å¯ŸåŠããã«ã¯ãURLã«ããŒãžã§ã³èå¥åãè¿œå ããŸãã
http://example.com/v8125/logo.png
ãŸãã¯
http://example.com/logo.png?v8125
ããŽãå€æŽããããšãURLãå€æŽãããŸããã€ãŸãããã¹ãŠã®ãŠãŒã¶ãŒãæ°ããããŒãžã§ã³ãããŠã³ããŒãããŸãã
Connect-cachifyïŒãªãœãŒã¹ãé£çµããã³ãã£ãã·ã¥ããããã®Node.jsã©ã€ãã©ãª
Connect-cachifyã¯ããªãœãŒã¹ã®é£çµãšãã£ãã·ã¥ã容æã«ããããã«Mozillaã«ãã£ãŠéçºãããNode.jsã®ããã«ãŠã§ã¢ã§ãã
å®åã¢ãŒãã§ã¯ãconnect-cachifyã¯çµåããã³çž®å°ããããªãœãŒã¹ãæäŸããããã©ã«ãã§ãããã®æå¹æéã1幎ã«èšå®ããŸãã éçºã¢ãŒãã§ã¯ã代ããã«ãªãœãŒã¹ã1ã€ãã€å²ãåœãŠãããããããããã°ã容æã«ãªããŸãã Connect-cachifyã¯é£çµãšçž®å°ã«é¢äžããããã«ãã¹ã¯ãªããã®è¯å¿ã«ä»»ããŸãã
connect-cachifyã¯ã
setup()
é¢æ°ã®åŒã³åºãã«ãã£ãŠæ§æãããŸãã
assets
ãš
options
2ã€ã®åŒæ°ãåã
options
ã
assets
ã¯ããããã¯ã·ã§ã³ã¢ãŒããšéçºã¢ãŒãã®ãªãœãŒã¹éã®å¯Ÿå¿ã確ç«ããèŸæžã§ãã çµåããã³çž®å°ãããåãªãœãŒã¹ã¯ãéçºã¢ãŒãã®ããã€ãã®åå¥ã®ãªãœãŒã¹ã«å¯Ÿå¿ããŸãã
options
ãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒã
- prefix-ãªã³ã¯å ã®ããã·ã¥ããªãã€ã¬ã¯ãããè¡ïŒããã©ã«ã-空ïŒ;
-
production
-æ¬çªã¢ãŒããšéçºã¢ãŒããåãæ¿ãããã©ã°ïŒããã©ã«ãã§ã¯true
ïŒã -
root
éçãªãœãŒã¹ãå«ããã£ã¬ã¯ããªãžã®ãã«ãã¹ïŒããã©ã«ã-'.'
ïŒã
æ¥ç¶ãã£ãã·ã¥ã®äŸ
3ã€ã®CSSãã¡ã€ã«ãš3ã€ã®åå¥ã®ã¹ã¯ãªãããåç §ããåçŽãªHTMLããããšããŸãã
... <head> <title>Dashboard: Hamsters of North America</title> <link rel="stylesheet" type="text/css" href="/css/reset.css" /> <link rel="stylesheet" type="text/css" href="/css/common.css" /> <link rel="stylesheet" type="text/css" href="/css/dashboard.css" /> </head> <body> ... <script type="text/javascript" src="/js/lib/jquery.js"></script> <script type="text/javascript" src="/js/magick.js"></script> <script type="text/javascript" src="/js/laughter.js"></script> </body> ...
connect-cachifyããµãŒããŒã«æ¥ç¶ããéçšãªãœãŒã¹ãšéçºãªãœãŒã¹ã®å¯Ÿå¿ãèšå®ããã¢ãžã¥ãŒã«ãæ§æããŸãã
// Include connect-cachify const cachify = require('connect-cachify'); // Create a map of production to development resources var assets = { "/js/main.min.js": [ '/js/lib/jquery.js', '/js/magick.js', '/js/laughter.js' ], "/css/dashboard.min.css": [ '/css/reset.css', '/css/common.css', '/css/dashboard.css' ] }; // Hook up the connect-cachify middleware app.use(cachify.setup(assets, { root: __dirname, production: your_config['use_minified_assets'], })); ...
DRYã®ååã«éåããªãããã«ããªãœãŒã¹å¯Ÿå¿ãããã¯ãconnect-cachifyãšãã«ãã¹ã¯ãªããã®äž¡æ¹ã§äœ¿çšãããå¥ã®ãã¡ã€ã«ã«ä¿åã§ããŸãã
次ã«ããã³ãã¬ãŒããæŽæ°ããŠãCSSãšJavaScriptãå«ããå Žæã瀺ããŸãã CSSã¯ããããã
cachify_css
ãã«ããŒãJavaScriptã
cachify_css
ã䜿çšããŠæ¥ç¶ãããŸãã
... <head> <title>Dashboard: Hamsters of North America</title> <%- cachify_css('/css/dashboard.min.css') %> </head> <body> ... <%- cachify_js('/js/main.min.js') %> </body> ...
æ¥ç¶ãã£ãã·ã¥åºå
productionãã©ã°ã
false
ã«èšå®ãããŠ
false
å Žåãconnect-cachifyã¯äžèšã®å ã®HTMLãšåæ§ã«ã3ã€ã®CSSãªã³ã¯ãš3ã€ã®JSãªã³ã¯ãçæããŸãã ãã ãã
true
ã«èšå®ãããŠãã
true
ãäœæãããã¿ã°ã¯1ã€ã ãã§ãã åã¿ã°ã®URLã«ã¯ããªãœãŒã¹ã®MD5ããã·ã¥ãå«ãŸããŸãã ããã¯ããªãœãŒã¹ãå€æŽãããå Žåã«åŒ·å¶çã«æŽæ°ããããã«è¡ãããŸãã 以äžã§ãã
... <head> <title>Dashboard: Hamsters of North America</title> <link rel="stylesheet" type="text/css" href="/v/2abdd020a6/css/dashboard.min.css" /> </head> <body> ... <script type="text/javascript" src="/v/acdd2ab372/js/main.min.js"></script> </body> ...
ãããã«
ãµã€ããé«éåããããã«ã§ããããšã®å€ãã¯éåžžã«ç°¡åã§ãã æãåºæ¬çãªãã®ã§ãããé£çµãå§çž®ããã£ãã·ã³ã°ã®3ã€ã®Kã§ããããŒãžã®èªã¿èŸŒã¿æéãå€§å¹ ã«ççž®ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã Connect-cachifyã¯ãã¢ããªã±ãŒã·ã§ã³ã®é£çµãšãã£ãã·ã³ã°ã®èªååã«åœ¹ç«ã¡ãŸãããä»ã«ãå€ãã®æ¹åç¹ããããŸãã ããã³ããšã³ãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã«é¢ãã次ã®èšäºã§ã¯ãETagã䜿çšããŠåçã³ã³ãã³ãããã£ãã·ã¥ããæ¹æ³ã瀺ããŸãã
ãµã€ã¯ã«ã®ãã¹ãŠã®èšäºïŒ
- ã Node.jsã§ã®ã¡ã¢ãªãªãŒã¯ã®ãã³ãã£ã³ã° ã
- ã ããŒããçŒçã«ããŒãããŸã ã
- ã ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã±ãŒãªã³ã°ãç°¡çŽ åããããã«ãã¯ã©ã€ã¢ã³ãã«ã»ãã·ã§ã³ãä¿åããŸã ã
- ã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããŒã1-é£çµãå§çž®ããã£ãã·ã³ã° ã
- ã è² è·ãããã£ãŠãã¯ã©ãã·ã¥ããªããµãŒããŒãäœæããŠããŸã ã
- ã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããŒã2-etagifyã䜿çšããåçã³ã³ãã³ãã®ãã£ãã·ã¥ ã
- ã node-convictã䜿çšããWebã¢ããªã±ãŒã·ã§ã³æ§æã®èª¿æŽ ã
- ã ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããŒã3-ãã©ã³ãã®æé©å ã
- ã Node.jsã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºããŒã1 ã
- ã Node.jsã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºããŒã2ïŒããŒã«ããããšããã»ã¹ ã
- ã Node.jsã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºããŒã3ïŒã¢ã¯ã·ã§ã³ã®ããŒã«ã©ã€ãº ã
- ã Awsbox-Amazon Cloudã«Node.jsã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®PaaSã€ã³ãã©ã¹ãã©ã¯ã㣠ã