-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

¯T®Ñ¡]¨÷3¡^¡GNode.js°ª¯Å§Þ³N

( ²Åé ¦r)
§@ªÌ¡G¯T¨ûÃþ§O¡G1. -> µ{¦¡³]­p -> ºô¸ô½sµ{ -> Node.js
ĶªÌ¡G
¥Xª©ªÀ¡G¹q¤l¤u·~¥Xª©ªÀ¯T®Ñ¡]¨÷3¡^¡GNode.js°ª¯Å§Þ³N 3dWoo®Ñ¸¹¡G 56154
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¦³®w¦s¡j
NT°â»ù¡G 540 ¤¸

¥Xª©¤é¡G11/1/2022
­¶¼Æ¡G340
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787121353871
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

±ÀÂ˧Ç1
´£°_°ê¤ºªºNode.js¥¬¹D®v¡A§Ú¸£®ü¤¤¥X²{ªº²Ä¤@­Ó¦W¦r´N¬O¯T¨û¡]i5ting¡^¡C
¯T¨û±q2015¦~¶}©l¬¡ÅD¤_CNodeªÀ°Ï¡A²Ö­pµoªí¤å³¹200§E½g¡A¥DÃDÂ×´I¦h¼Ë¡X¡XNode.js©³¼h­ì²z¡Bnpm¥Ø¿ýµ²ºc§ï¶i¡B«e¦ZºÝ¤ÀÂ÷¹ê½î¡B¥þ´Ì¤uµ{®v¤§¸ôµ¥¡C³o´X¦~¶¡¡A¯T¨û¦P®É¹BÀçµÛ¦Û¤vªº·L«H¤½²³¸¹¡§Node¥þ´Ì¡¨¡Aµ§¯Ñ¤£½ù¡A·½·½¤£Â_¦a±N³Ì·sÂA¡B³Ì¡§µw®Ö¡¨ªº¸ê°T¤À¨Éµ¹°ê¤ºªº¶}µoªÌ­Ì¡C¤£±o¤£»¡¡A¥Lªº³oºØ¼Ö¤_¤À¨Éªººë¯«¡A¹êÄÝÃø±o¡C
§Ú»P¯T¨û¤]¬O¦b2015¦~¬ÛÃѪº¡C2015¦~¬ONode.jsªº´¶¤Î«×§eÃzµo¦¡¼Wªøªº¤@¦~¡A¦ý¨º¤@¦~ªºNode.jsÁÙ»·»·½Í¤£¤W³Q¼sªx¨Ï¥Î¡C·í®É§Ú¦bªü¨½¤Ú¤Ú¼Æ¾Ú¥­»O¥ô¾¡A§Ú­Ì©Ò°µªº³¡¤À¶µ¥ØªºJavaScriptÀ£ÁY¤u¨ã©M´ú¸ÕÂл\²v¤u¨ãÁÙ¬O¥ÎJava¹ê²{ªº¡A³o¦b²{¦b¬Ý¨Ó¥i¥H»¡¬O«D±`­ê¦i©Ò«äªº¡AJavaScript¤u§@¬y¤¤ªº¤u¨ã³ºµMÁÙ¦³¥ÎJava¦Ó¤£¬O¥ÎNode.js¹ê²{ªº¡I
®É¹L¹Ò¾E¡AÂ಴¦h¦~¹L¥h¡AJavaScript¦b¤j«eºÝ»â°ì¹M¦a¶}ªá¡ANode.js¤]¤w¸g³Q¼sªxÀ³¥Î¤_Web¶}µoªº¤è¤è­±­±¡A¦¨¤FWeb¶}µo¬yµ{¤¤¤£¥i©Î¯Êªº³¡¤À¡C¤j®a¤£¦AÃhºÃNode.js¯à¤£¯à¥Î¡A¦Ó¬O¶}©l«ä¦Ò¸Ó¦p¦ó¥ÎNode.js¹ê²{§Ú­Ì·Q­nªº¥\¯à¡C
§Þ³Nªº¦n»PÃa¡A¤£¶È¶È¦b¤_§Þ³N¥»¨­¨ã¦³¤°¤\Àu¶Õ¡C¥¬¹D¦pªG°µ±o¤£¦n¡A°s­»¤]©È«Ñ¤l²`¡C§Þ³Nªº¶i¨B»P¨ü²³¸sÅ骺¤ÏõX¬O¬Û¤¬«P¶iªº¡CNode.js¦b°ê¤º³vº¥¥Í®ÚµoªÞªº³o´X¦~¡A¯T¨ûµLºÃ¬O±À¼s¸Ó§Þ³Nªº¤¤°í¤O¶q¡C
¸g¹L¦h¦~ªº¿n²Ö©M¨IÕà¡A¯T¨û±aµÛ¥Lªº·s®Ñ»P¤j®a¨£­±¤F¡C³o¥»®Ñ¤º®e´`§Çº¥¶i¡B·§©À²M´·©ú¤F¡B§Þ³N´y­z¦³ÂI¦³­±¡A¬O¤@¥»²z½×¬[ºc§¹¾ã¥B¹ê¾Ô®×¨Ò¨å«¬ªº¦n®Ñ¡I¬Û«H¦U¦ìŪªÌ¯à°÷±q¤¤Àò¯q¡I
³Ì¦Z¡A°J¤ß¯¬º@Node.jsµo®i±o¶V¨Ó¶V¦n¡A¤]¯¬º@¯T¨ûªº¥¬¹D¨Æ·~»]»]¤é¤W¡I
CNodeªÀ°ÏºÞ²z­û¡Aalsotang

±ÀÂ˧Ç2
¦b¯T¨ûÁܽЧڬ°¥Lªº·s®Ñ¼g±ÀÂ˪º®É­Ô¡A§Úªº¤º¤ß¬OÊØÊתº¡A¦]¬°§Ú¹ïNode.js¦}¤£¼ô±x¡A¤£¬O³o¤è­±ªº±M®a¡C¦ý¹ï¤_¯T¨û§Ú¬O¤F¸Ñªº¡A¦P¬°§Þ³NªÀ°Ï±À°ÊªÌ©M¤å¦r·R¦nªÌ¡A§Ú²`ª¾¦b°ê¤º­n¼g¤@¥»ÄYµÂªº§Þ³N¹Ï®Ñ¬O¤@¥ó¦h¤\¦Y¤O¤£°Q¦nªº¨Æ±¡¡C¥¿¦]¦p¦¹¡A¯T¨ûªº³o¥»®Ñ´N§ó­È±o±ÀÂ˵¹¥¿¦b¾Ç²ßNode.jsªº¤uµ{®v­Ì¡C
2009¦~¡ANode.js­è­è½Ï¥Í¡A¨º®É§Ú´N±µÄ²¨ì¤F¥¦¡C¦Z¨Ó¡ANode.jsªº­¡¥N©M¶i¨B¤§§Ö§¹¥þ¶W¥X¤F§Úªº¹w´Á¡A¥¦Åܱo¶V¨Ó¶V¦n¥Î¡A³vº¥¦¨¬°¥þ´Ì¤uµ{®vªº­º¿ï¡C³o¼Ëªºµ²ªGÂ÷¤£¶}±j¤j¡B¬¡ÅDªºNode.jsªÀ°Ï©MµL¨pªºNode.js°^ÄmªÌ­Ìªº¥I¥X¡A¦Ó¯T¨û´N¬O°ê¤ºNode.js°^ÄmªÌªº¥Nªí¡C
¦³¤FNode.js¡A«eºÝ¤uµ{®v¤]¥i¥H½s¼g¦ZºÝµ{§Ç¡A¦}¦¨¬°¤â¾÷À³¥Îªº¸ó¥­»O¶}µo¥D¤O¡C«È¤áºÝ¡B«eºÝ©MªA°È¾¹ºÝ¤w§e²{¥X¤j²Î¤@ÁͶաC¦b§Ú¦Û¤v¼ô±xªºWebªA°È¾¹¶}µo»â°ì¡A¥i¥H»¡Nginx¤º¸mªºnjs´N¬O¨RµÛ´À¥NOpenResty³o¤@¥Ø¼Ð¨³³tµo®iªº¡C
¦b³oºØ§Þ³NÁͶդU¡A¾Ç²ßJavaScript©MNode.jsµLºÃ¬O¤@­Ó©Ê»ù¤ñ«Ü°ªªº¿ï¾Ü¡C³o¼Ë¤@¨Ó¡A§Ú­Ì«K¥i¥H¥´³q±q²¾°ÊÀ³¥Î¡BWebÀ³¥Î¨ìªA°È¾¹ºÝ±µ¤fªº¾ã±øÃì¸ô¡C¦Ó¾Ç²ß¤@ªù§Þ³N³Ì¦nªº¤è¦¡¡A´N¬O¿ï¾Ü¤@¥»¦n®Ñ¡C
¼g¤@¥»¦n®Ñ¹ï§@ªÌªº­n¨D«Ü°ª¡X¡X§Þ³N¥\©³¤ã¹ê¥u¬O°ò¦¡A§ó­n¦³Â×´Iªº¶µ¥Ø¸gÅç¡B²`«pªº¤å¦r¥\©³©M¬}¹îŪªÌ¤ß²zªº¯à¤O¡C¥­¤é¨½¹³¡§¸Ö¤H¡¨¤@¼Ëªº¯T¨ûµ´¹ï¬O¬°¼Æ¤£¦hªº¨ã³Æ¤W­z¯à¤Oªº¡§¤û¤H¡¨¡A©Ò¥H§Ú¬Û«H¥L¼gªº®Ñ¤]¤@©w¬O¤@¥»¦n®Ñ¡C§Æ±æ¤j®a¯à³q¹L³o¥»¦n®Ñ´£¤É¦Û¤vªº§Þ³N¤ô¥­¡C
¾Ç²ß±q¨Ó¤£¬O¤@¥ó®e©öªº¨Æ¡A¦ý«o¬O¤@¥ó§Ö¼Öªº¨Æ¡A¦@«j¡C
¤ä¬y¬ì§Þ³Ð©l¤H¡® CEO¡BApache PPMC¡A·Å»Ê

±ÀÂ˧Ç3
1995¦~¡ABrendan Eichªá¤F10¤Ñ®É¶¡¶}µo¥X¤F¤@ªù¸}¥»»y¨¥¡A¸Ó»y¨¥¥i¥Î¤_À±¸ÉJava Appletsªº¤£¨¬¡AÀH¦ZMarc Andreessen±N³oªù»y¨¥©R¦W¬°Mocha¡CMochaªº³Ìªì©w¦ì¬O¡AªA°È¤_´ú¸Õ¸}¥»½s¼g¤H­û¡B·~§E½sµ{·R¦nªÌ¡B³]­p®v¡C
¦P¦~5¤ë¡AMocha³Q¶°¦¨¨ì¤FNetscapeÂsÄý¾¹¤¤¡A¤£¤[¦Z¨ä³Q§ó¦W¬°LiveScript¡C¦P¦~¦~©³¡ANetscape¤½¥q©MSun¤½¥q¹F¦¨¨óij¦}Àò±o¤FJava°Ó¼Ðªº¨Ï¥ÎÅv¡A¤_¬OLiveScript¥¿¦¡³Q§ó¦W¬°JavaScript¡C
¦³¤Hı±o¡A¥¿¬O¦]¬°§ó¦W¬°JavaScript¤~¨Ï³oªù»y¨¥¦¨¤FÂsÄý¾¹°õ¦æªº°ß¤@»y¨¥¡C¦ý®É¦Ü¤µ¤é¡AJavaScript¤w¸g¤£¶È¶È§½­­¤_¹ê²{ºô­¶¯S®Ä¤F¡A¦Ó¯u¥¿µo®i¦¨¤F¤@ªù¥þ¥\¯àªº½sµ{»y¨¥¡C
2009¦~¡AJoyent¤½¥qªº¤@¦W³n¥ó¤uµ{®vRyan Dahl¶}µo¤FNode.js¡A³o¬O¤@­Ó°ò¤_Chrome V8¤ÞÀºªºJavaScript¹B¦æ®ÉÀô¹Ò¡CNode.js¨Ï±oJavaScript¾Ö¦³¤F¾Þ§@¤å¥ó¨t²Î¡BI/O¡Bºôµ¸¡A¬Æ¦Ü¼Æ¾Ú®wªº¯à¤O¡CÁöµMNode.js¤£¬O²Ä¤@­Ó±NJavaScript±aÂ÷ÂsÄý¾¹ªº¤u¨ã¡A¦ý¥¦µLºÃ¬O³Ì¦¨¥\ªº¤@­Ó¡C
¦p¤µ¡ANode.jsªÀ°Ï¤w¸g¦¨¤F³Ì¬¡ÅDªº½sµ{ªÀ°Ï¤§¤@¡A¨änpmªº¥]¼Æ¶q¤]¤w¸g¶W¶V¤FJavaªºMaven¡BRubyªºGem¡BPHPªºComposer¡C
¯T¨û¬O°ê¤º³Ì¦­¤@§åªºNode.js¨Ï¥ÎªÌ¡A¤]¬ONode.jsªÀ°Ï³Ì¬¡ÅDªº¥¬¹DªÌ¤§¤@¡C¦h¦~«e¯T¨û¨Ó¤Ñ¬z³Ð·~¡A§Ú¦³½t»P¥Lµ²ÃÑ¡C¦b¨º¤§«e§Ú´N¤w¸g«ôŪ¹L¯T¨ûªº¤å³¹¡A¦Ó·í®É¯T¨û´N´¿»P§Ú½Í°_­n¼g¤@¥»Ãö¤_Node.jsªº®Ñ¡C»¡¨Ó¤]¥©¡ANode.js¤_2009¦~µo¥¬¡A¦Ó¡mª÷­è¯T¡n¨t¦C¹q¼v¤]¤_2009¦~¶}©l¤W¬M¡C¡mª÷­è¯T¡n¨t¦C¹q¼v¤@¦@3³¡¡A¦Ó¯T¨ûªº¡m¯T®Ñ¡n¨t¦C¹Ï®Ñ¤]¦³3¨÷¡A§Æ±æ¡m¯T®Ñ¡n¨t¦C¹Ï®Ñ¯à¦p¡mª÷­è¯T¡n¨t¦C¹q¼v¤@¼Ë¨ü¨ìÅwªï¡C
¥Ø«eNode.jsµo®i¤Q¤À¨³³t¡A¦ý«Ü¤j¤@³¡¤À¨Ï¥ÎªÌ¬O«eºÝ¶}µo¤H­û¡C©MJava¡BPython¡BRubyµ¥¦ZºÝ»y¨¥¹ï¤ñ¡A¤×¨ä¦b¹Ï®Ñ¥Xª©¤è­±¡ANode.jsÁٻݭn«ùÄò²`¤J¡A¦Ó¡m¯T®Ñ¡n¨t¦C¹Ï®Ñªº­±¥@¥¿¦nÀ±¸É¤F³o¤@¤è­±ªº¤£¨¬¡X¡X²Ä1¨÷¨t²Î¥þ­±¦a¤¶²ÐNode.js°ò¦¡A²Ä2¨÷µÛ­«¤¶²ÐNode.js WebÀ³¥Î¶}µo§Þ¯à¡A²Ä3¨÷«h°¼­«¤_Node.jsªº°ª¯ÅÀ³¥Î¡C¦pªG§A·Q²`¤J¾Ç²ßNode.jsªº®Ö¤ß­ì²z¦}´x´¤¨Ï¥ÎNode.js¶}µo¤j«¬¨t²Îªº­n³Z¡A¨º¤\³o®M®Ñ«D±`­È±o§AºëŪ¡C
Flarum¤¤¤åªÀ°Ï³Ð©l¤H¡A°g´ç¡]justjavac¡^

±ÀÂ˧Ç4
«U¸Ü»¡¡A¤Q¦~¿i¤@¼C¡AºC¤u¥X²Ó¬¡¡C¯T¨û¼¶¼gªº¡m¯T®Ñ¡n¨t¦C¹Ï®Ñ«Ü¦n¦a¸àÄÀ¤F³o¨â¥y¸Ü¡C
²³©Ò©Pª¾¡A¯T¨û¬ONode.js¥¬¹DªÌ¡B¡§Node¥þ´Ì¡¨·L«H¤½²³¸¹ªº§@ªÌ¡A¥L¬¡ÅD¤_CNodeªÀ°Ï¡A²Õ´¤F¤£¤Ö½u¤UNode.js¨FÀs¡A¦P®É±`§@¬°Á¿®v¦b¦UºØ§Þ³N¥æ¬y·|¤W¶i¦æ¤À¨É¡A¬°Node.js¦b°ê¤ºªº±À¼s°µ¥X¤F«Ü¤jªº°^Äm¡C§Úı±o³o¬O¤@ºØ±¡Ãh¡A¤]¬O¤@ºØ³d¥ô¡C·í§A·R¤W¤@¥ó¨Æ¡A§A´N·|¥þ±¡§ë¤J¡C
Node.jsªº¥X²{¦b«Ü¤jµ{«×¤Wº¡¨¬¤F«eºÝ¤uµ{®v·Q­n±´¯Á§ó¼sÁ諸½sµ{¥@¬Éªºº@±æ¡A¬°«eºÝ¤uµ{®v´£¨Ñ¤F§ó¦nªº¤F¸Ñ¦ZºÝ¤u§@ªº¾÷·|¡A¹ï¤_«e¦ZºÝ¨ó¦P¦Ó¨¥¨ã¦³¥¨¤j»ù­È¡C¤Q´X¦~®É¶¡¡ANode.js´X¸gªi§é¡A¦ý³o¦}¤£§«Ãª¥¦§Ö³tµo®i¡A¦p¤µ¥¦¤w¸g¦¨¬°³Ì¬y¦æªº§Þ³N¤§¤@¡C
ªñ¨Ç¦~¡A¤£¤Ö¤j«¬¤¬Ápºô¤½¥q³£¶}©l°ò¤_Node.jsºc«ØÀ³¥Î¡C§Ú©M¯T¨û¦b¥h­þ¨àºô¬ÛÃÑ¡A¥­®É©M¥L¹ï¸Ü©Î¶~²á¡A³Ì¦ZÁ`¯à²á¨ìNode.js¤W¡A§Ú¯à²`¤Á¦a·P¨ü¨ì¥L¹ïNode.jsªº¼ö·R¡C¨º®É­Ôªº¯T¨û¥¿¦b§V¤O¬°¥h­þ¨àºô«Ø³]§ó§¹µ½ªºNode.js°ò¦³]¬I¡A¥Lªº§V¤O¬°¥h­þ¨àºôª`¤J¤F·sÂA¬¡¤O¡A¥[§Ö¤FNode.js¦b¾÷²¼ÁʶR·~°È¤¤ªº¸¨¦a¡C
¡m¯T®Ñ¡n¨t¦C¹Ï®Ñ¥¿¬O¯T¨ûNode.js±¡Ãhªº³Ì²×±H¦«¡C³o¥»²Ä3¨÷»EµJ¤_Node.js°ª¯Å§Þ³N¡A´X¸gÀJµZ²×¤_­±¥@¡A«Ü¦n¦a©Ó¸ü¤F¯T¨û¹ïNode.jsªº¼ö·R¡A±N¶}µonpm¼Ò¶ô¡B½s¼g¥ø·~¯ÅWeb¶}µo®Ø¬[¡BªA°È¾¹³¡¸p¡B´ú¸Õ¡B¶}·½µ¥¼öªù¸ÜÃD®U®U¹D¨Ó¡A´N¹³¤@ªM³¯°s¡A¶V«~¶V¦³¨ý¹D¡C§Ú¬Û«H¨C¤@¦ì®³¨ì¦¹®ÑªºÅªªÌ³£·|¦³¤£¦Pªº¦¬Àò¡AµL½×§A¬Oªì¤J«eºÝ»â°ìªº¡§¤p¥Õ¡¨¡AÁÙ¬O²`¯Ñ¦h¦~ªº¡§¦Ñ¤â¡¨¡C
¬ü¹Î¬ã¨s­û¡A§ùº½

¦Û§Ç
¡m¯T®Ñ¡n¨t¦C±q2015¦~10¤ë¶}©l¼¶¼g¡C
¦b¨º¤§«e¡A§ÚÁÙ¦b¤Ñ¬z³Ð·~¡A³»µÛCTOªºÀY»Î¤zµÛ¦UºØ³Ì°ò¦ªº½s½X¤u§@¡C¥Ñ¤_¤½¥q¦b¤Ñ¬zªº¦ì¸m«Ü°¾»÷¡A©Ò¥H¤½¥q©Û¤H¦¨¤F¤@­Ó¤j°ÝÃD¡C§ó­n©Rªº¬O¡A³Ð©l¤H¨S¦³¤u¸ê¥i®³¡A²{¦b·Q·Q¥u¯à»¡¬O±¡Ãh¦b¤ä¼µ§Ú§a¡C
¤½¥q©Û¤H¤£«K¡A¨º´N¥u¯à·Q¿ìªk§â¤H¤~±q¥_¤W¼s©Ô¨ì¤Ñ¬z¡A¤_¬O§Ú´N°Ê¤FÂX¤j§Þ³N¼vÅT¤Oªº¤ß«ä¡X¡X§Ú¶}©l¦bCNodeªÀ°Ï¤Wµo©«¡A¦Z­±ºCºC¹Á¸Õ°µ¡§Node¥þ´Ì¡¨·L«H¤½²³¸¹¡A®ÄªGÁÙ¤£¿ù¡C§ÚÁÙ°O±oCNodeªÀ°ÏºÞ²z­û¡Bª¾¦WNode.js¶}µoªÌalsotang´¿µû½×¹L§Úªº¤@½g¤å³¹¡A»¡§Ú¬ONode.js¥¬¹DªÌ¡C·í®É§Ú¯ä¬ü¤F«Ü¤[¡A¤§¦Z«K¦ÛµM¦ÓµM¦a¨«¤W¤FNode.js¥¬¹D¤§¸ô¡C
2015¦~¡A§Úµ²±B¤F¡A°]Åv¤W¥æ¡Aµoı¥Í¬¡µ~­¢¡A¤S¤£¦n·N«ä¦V¦Ñ±C­n¿ú¡A¤_¬O«K¶}©l¦bºô¤W±Ð±ÂVSCode¡A¤§¦Z§Ú¤S©M·¥«È¨¹ºX¤UªºStuQ¦X§@Á¿½Ò¡AÀò±o¦¬¤Jªº¦P®É¤S¥i¥H¶i¤@¨BÂX¤j§Þ³N¼vÅT¤O¡C¦Ó§Þ³N¼vÅT¤OÂX¤jªºÅé²{´N¬O¡A§Ú³Q¥Xª©ªÀªº½s¿èµo²{¤F¡C¥Ñ¤_¦­¦³¥¬¹Dªº¤ß«ä¡A¦ÛµM§Æ±æ¯à°÷¥X¤@¥»®Ñ¡A¤_¬O§Ú«K¶}©l¤F¼g®Ñ¤§®È¡C
¥i¬O¼g®Ñ±q¨Ó³£¤£¬O¤@¥ó®e©öªº¨Æ¡C¾\¾ú²L¡A¼g¤£¨Ó¡FµLùڤߡA¼g¤£¨Ó¡C±q§ÚµÞ¥Í¼g®Ñªº·Qªk¦Ü¤µ¡ANode.jsí©w¡B°ª®Ä¦aµo¥¬¤F¦h­Óª©¥»¡A°ê¤º¥~ªºNode.js¨Ï¥Î²v¤]º¥º¥¹F¨ì¤F¤@­Ó«e©Ò¥¼¦³ªº°ª«×¡C³o¨Ç¦~¨½¡A«Ü¦hªB¤Í¶Ê®Ñ¡A¥H¦Ü¤_§Ú¸g±`¦bºtÁ¿¤¤¡§¦Û¶Â¡¨¡G¡§§Úªº®Ñ±qNode.js 4.0ª©¥»¼g¨ìNode.js 8.0ª©¥»¡AµM¦ÓÁÙ¨S¦³¼g§¹¡C¡¨¥Xª©ªÀ¬ù½Z®É¡ANode.js¤~­è­èµo¥¬4.0ª©¥»¡F2019¦~¦~ªì¡m¯T®Ñ¡]¨÷1¡^¡G§ó¤F¤£°_ªºNode.js¡n¼¶¼g§¹¦¨®É¡ANode.jsµo¥¬¤F11.10ª©¥»¡F¨ì2022¦~10¤ë¡ANode.jsª©¥»¤w¸g¨Ó¨ì18.10¡C
³Ì²×¡A¥»®Ñ½T©w¥HNode.js 8.0¬°®Ö¤ßª©¥»¡CÁöµM¦Z­±Node.jsªº§ó·sª©¥»¨½¤S¼W¥[¤F·s¥\¯à¡A¦ý¾ãÅé¨Ó¬Ý¡ANode.jsªºAPI³]­p±o«D±`¦n¡A´X¥G³£¬O¦V¦Z­Ý®eªº¡A©Ò¥H§Y¨Ï¬O18.10ª©¥»¦b¨Ï¥Î¤W©M8.0ª©¥»ªº®t§O¤]¤£¤j¡C
2019¦~7¤ë¡A¡m¯T®Ñ¡]¨÷1¡^¡G§ó¤F¤£°_ªºNode.js¡n©M¤j®a¨£­±¤F¡C2019¦~12¤ë¡A¡m¯T®Ñ¡]¨÷2¡^¡GNode.js WebÀ³¥Î¶}µo¡n¥Xª©¡C­ì¥H¬°¡A¡m¯T®Ñ¡]¨÷3¡^¡GNode.js°ª¯Å§Þ³N¡n¤]·|¦b¤£¤[¤§¦Z»P¤j®a¨£­±¡A«o¥¼´¿·Q2020¦~¦³«Ü¦h¬ð¦p¨ä¨ÓªºÅܤơA¼vÅT¤F³o¥»®Ñªº¥Xª©­p¹º¡C¸g¹L§Úªº²`«ä¼ô¼{¡Aı±o¤£¦p¶X¦¹¾÷·|±N®Ñ¤¤­ì¥»ªº³¯Â¤º®e±À½¡A¦A¥[¤W¤@¨Ç·sªº·P®©¡C¤_¬O¡A§Ú¤S¶}©l­«·s³Ð§@¡A§R§R§ï§ï¡A­¡¥N¤F¤@½ü¤S¤@½ü¡K¡K«Ü©êºp¡A®É¹j¤T¦~¡A¡m¯T®Ñ¡]¨÷3¡^¡n¤~»P¦U¦ìŪªÌ¨£­±¡C
¤H¥Í¤§¬ü¦n´N¬O¦b­WÃø¤§¦Z¯à°÷Àò±o¦¨ªG¡C¼g®Ñªº¹Lµ{¬Oµh­Wªº¡A¦ý¤]Åý§Ú¹ï¡§¦¨´N§O¤H¤~¯à¦¨´N¦Û¤v¡¨³o¥y¸Ü¦³¤F§ó²`¨èªº»{ÃÑ¡C³Ì¶}©l¼g®Ñ¬O¬°¤F¥¬¹D¡A§Æ±æ§ó¦h¤H¯à±q¤¤¨ü¯q¡A¨S·Q¨ì³Ì¥ý¨ü¯qªº¬O¦Û¤v¡C³q¹Lªø®É¶¡ªº¿n²Ö¡A§Ú§¹µ½¤F¦Û¤vªºª¾ÃÑÅé¨t¡A¨ü¯q­ê²L¡C³q¹L»PCNodeªÀ°Ï¡B¥Xª©ªÀªº½s¿è¤ÎNode.js·R¦nªÌ­Ì¥æ¬y¡A§Ú¦³¤F§ó¦nªº¾Ç²ß¾÷·|¡C³q¹L¼g®Ñ¡BºtÁ¿¡B²Õ´ªÀ°Ï¬¡°Ê¡A§Ú¦³¤F§óÂ×´Iªº¤H¥Í¸g¾ú¡C
¥H«e¨£¨ì¹Ï®Ñªº«e¨¥¤¤Á`¦³­PÁ¸ܻy¡AÁÙ¥H¬°¥u¬O¥Xª©¡§®M¸ô¡¨¡CµM¦Ó¤µ®É¤µ¤é¡A¾ú¸g¦h¦~ªº¼g§@¡A§Ú½T½T¹ê¹ê­n·PÁ«ܦh¤H¡C
·PÁ§ڪº®a¤H¡A¼g®Ñ·|Ä묹«Ü¦h³­¦ñ®a¤Hªº®É¶¡¡A·PÁÂ¥L­Ìªº²z¸Ñ©M¤ä«ù¡C³ÌÃø¹Lªº¬O©P¤@¨ì©P¤­¡A¥u¯à¬Ý¦Ñ±C³q¹L·L«Hµo¨ÓªºÄ_Ä_ªºµøÀW¡A¤@¹M¤@¹M¦a¬Ý¡A¤@¹M¤@¹M¦a·Q­ú¡C
·PÁ©Ҧ³±ÀÂË¥»®Ñ¤Î¬°¥»®Ñ¶i¦æ§Þ³N¼f®Õªº±M®a­Ì¡A­Y¨S¦³¥L­ÌªºÀ°§U¡A³o¥»®Ñ®£©ÈµLªk¥H³Ì¨Îª¬ºA»P¦U¦ìŪªÌ¨£­±¡C¥L­ÌªºÄ_¶Q«Øij¨Ï±o¥»®Ñªº¤º®e¤£¦Ü¤_ªÅ¬}¡A¤]Åý§Ú¨ü¯q¨}¦h¡C
·PÁ³դåµøÂIªº±i¬K«B½s¿è©M®]©_«N½s¿è¡A¥L­Ì¤@¦¸¦¸¦a¥mÅñ§Ú¡B¹ªÀy§Ú¡A­±¹ï­±«ü¾É§Ú¦p¦ó³W­S¼g§@¡A³oºØ­@¤ß©M¥]®e¬O·¥¨äÃø±oªº¡C¦b¥»®Ñªº¼f®Õªì´Á¡A§Ú¬O±Y¼ìªº¡X¡X·Pı¦Û¤v¼Æ¾Ç¤£¦n¡A±`±`¤W­±»¡3¶µ¤U­±¦C4¶µ¡F»y¤å¤]¤£¦n¡A³s°ò¥»ªº»y¥y³£ªí¹F¤£²M¡A«Ü²Å¦X¨º¥yª±¯º¸Ü¡§§Aªº»y¤å¬OÅé¨|¦Ñ®v±Ðªº§a¡¨¡C§Ú¯à°÷·Q¶H½s¿è­Ì¦b­×§ï®Ñ½Z¤§®É¬O¦h¤\¡§µh­W¡¨¡A¦]¦¹¦A¦¸·PÁ¨â¦ì½s¿è¡A·PÁÂ¥L­Ìªº¨¯­W¥I¥X¡A¦]¬°¦³¥L­Ì¡A¥»®Ñ¤~¯à°÷¶¶§Q¥Xª©¡C
¦^·Q³o´X¦~ªº¼g§@¹Lµ{¡A¨ä¹ê´X¦¸³£·Q©ñ±ó¡A·Q±NNode.js¨t²Î¦aÁ¿©ú¥Õ¡A¯uªº¤£¬O¤@¥ó®e©öªº¨Æ¡C¥i¬O¸Ü³£»¡¥X¥h¤F¡A¤£·QÅý¤@ª½¥H¨Ó¤ä«ù§ÚªºÅªªÌ¥¢±æ¡A§ó¤£¯à¦Û¤v¡§¥´Áy¡¨¡A©Ò¥H¡A³o¥»®Ñ³Ì²×ÁÙ¬O¸ò¤j®a¨£­±¤F¡A¡m¯T®Ñ¡n¨t¦C¤]²×¤_§¹¾ã¦a§e²{¦b¤j®a­±«e¤F¡I·PÁ¦U¦ì¯»µ·¦b¦U­Ó§Þ³N¸s¨½¡§ªá¦¡¡¨¶Ê®Ñ¡A·PÁÂ¥L­Ì¹ï§ÚªºÃ@µ¦¡C
¦A¦¸·PÁ©Ҧ³ªº¤p¥ë¦ñ­Ì¡C
­P©Ò¦³¥¼¨£­±ªºÅªªÌ¡A¦ýº@¯T¨ûªº¡§¸H¸H©À¡¨¯à°÷±a§A­Ì¥´¶}Node.js¥@¬Éªº¤jªù¡A»â²¤¤j«eºÝ»â°ì½AÀöªº¬P¥ú¡C

¯T¨û
2022¦~10¤ë

«e¨¥
°_ªì¡A¡m¯T®Ñ¡n¬O¤@¥»®Ñ¡A¦Ó¤£¬O¨t¦C¹Ï®Ñ¡C§Ú·Q±N¦Û¤v¹ïNode.jsª¾ÃÑÅé¨tªº²z¸Ñ¶i¦æÁ`µ²¡A¿Ä¤J®Ñ¤¤¡CµM¦Ó¡ANode.js»â°ì¯A¤Îªºª¾ÃÑ«D±`¼sªx¡A¥H¦Ü¤_¼gµÛ¼gµÛ´N¼g¤F1000­¶¡C¤_¬O¡A§Ú©M½s¿è°Ó©w¡A±N¡m¯T®Ñ¡n©î¤À¦¨¤F3¥»®Ñ¡C¨ä¤¤¡A¨÷1­«ÂIÁ¿Node.jsÀ³¥Î³õ´º©M¤Jªù¡A¨÷2­«ÂIÁ¿¥H¤U¤@¥N®Ø¬[Koa¬°®Ö¤ßªºWeb¶}µo¡A¨÷3­«ÂIÁ¿»P¹ê¾Þ¬ÛÃöªºNode.js°ª¯Å§Þ³N¡C
¦bNode.js¥@¬É¨½¡A°ª¯Å§Þ³N¦}¤£¬O«Ü¦h¤H²z¸Ñªº½u¤W°ÝÃD¸Ñ¨M¤è®×¡C¥»®Ñ¤¤©w¸qªº°ª¯Å§Þ³N¡A¬OÅý§ó¦hNode.js·s¤H§ó®e©ö¤W¤âªº§Þ³N¡A¬O¥Ñ·s¤âÅܦ¨¸gÅçÂ×´Iªº°ª¯Å¤uµ{®v³o¤@¹Lµ{¤¤»Ý­n´x´¤ªº§Þ³N¡C¥»®Ñ»EµJ¤_¹ê¥Î°ª¯Å§Þ³N¡AÅý¤j®a¥i¥HÃä¾\ŪÃä°Ê¤â¹ê½î¡C©Ò¿×¡§±Â¤H¥H³½¤£¦p±Â¤H¥Hº®¡¨¡A³o¤]¬O§Ú¼¶¼g¥»®Ñªº¥Øªº¡C
¥»®Ñ¤º®e
¥»®Ñ¥HNode.js°ª¯Å§Þ³N¬°®Ö¤ß¡A¥D­nÁ¿¸Ñ¦p¦ó¶}µonpm¼Ò¶ô¡B¦p¦ó½s¼g¥ø·~¯ÅWeb¶}µo®Ø¬[¡B¦p¦óºc«Ø¨ã¦³Node.js¯S¦âªºªA°È¡AÁÙ¤¶²Ð¤F»PªA°È¾¹³¡¸p¡B©Ê¯à½ÕÀu¡B´ú¸Õ¡B¶}·½µ¥¬ÛÃöªº¤º®e¡C
¥»®Ñ¦@¤À5³¹¡A¨C³¹ªº¤º®e²¤¶¦p¤U¡C
²Ä1³¹ ¦Û¤v°Ê¤â¼gnpm¼Ò¶ô
¥»³¹±N¤¶²Ð½s½X¤¤±`¥Îªº°ò¥»§Þ¯à¡A¦pAck¡BAutojumpµ¥±`¥Î©R¥O¡A¦p¦ó½s¼gNode.js¼Ò¶ô¡A¦UºØnpm¨Ï¥Î§Þ¥©µ¥¡C¥»³¹ºë¿ï3­Ó¹ê¨Ò¡A¸Ô²ÓÁ¿¸Ñ¼Ò¶ô½s¼g¤èªk¤Î¸}¤â¬[¼gªk¡A¦P®É±ÀÂˤF¦h­Ó¹ê¥Î¼Ò¶ô¡A¦pdebug¡Bmkdirp¡Bshelljsµ¥¡C
²Ä2³¹ ¦Û¤v°Ê¤â½s¼g¥ø·~¯ÅWeb¶}µo®Ø¬[
¥»³¹±N¤¶²Ð¦b¹ê»Ú¶µ¥Ø¤¤§ó¬°±`¥Îªº¥ø·~¯ÅWeb¶}µo®Ø¬[ªº¸}¤â¬[¼gªk¡C­º¥ý¤¶²ÐNode.js»â°ì±`¥Îªº¯S¦âWeb¶}µo®Ø¬[¡AÅýŪªÌ¹ïWeb®Ø¬[¦³¤@­Ó¤j­P¤F¸Ñ¡AµM¦Z¤¶²Ð¦Û¤v°Ê¤â¹ê²{¥ø·~¯ÅWeb®Ø¬[ªº¬yµ{©Mª`·N¨Æ¶µ¡A¯A¤Î¸}¤â¬[¶}µo¡B¥Ø¿ý³]­p¡B¼ÒªO¶}µo¡BÀRºAAPI¼ÒÀÀµ¥¡C
²Ä3³¹ ºc«Ø¨ã¦³Node.js¯S¦âªºªA°È
¥»³¹±N¤¶²Ð°ò¤_Node.jsºc«ØªºªA°È¡A¥]¬A·LªA°È¡BBFF¡BSFF¡BSSRµ¥¡A²Ó­P¤¶²ÐªA°È¾¹ºÝ±`¥Î¬[ºc¡A¦}§¹¾ãÁ¿¸ÑNode.jsªA°Èªººc«Ø¬yµ{©Mª`·N¨Æ¶µ¡C¨ä¤¤¡A¨Ï¥ÎNode.js¶}µoRPCªA°È©MAPIªA°È¬O¤ñ¸û¦³¯S¦âªº¤º®e¡A­¶­±§YªA°È·§©À¬O¦U¦ìŪªÌ»Ý­n­«ÂI´x´¤ªº¡C
²Ä4³¹ ªA°È¾¹³¡¸p»P©Ê¯à½ÕÀu
¥»³¹±N¤¶²Ð¦p¦ó¦b¤ªÀô¹Ò¤¤§¹¦¨Node.jsªA°È¾¹³¡¸p¦}¹ê²{¦UºØ©Ê¯à½ÕÀu¤èªk¡C©Ê¯à½ÕÀu¬O¤@­Ó§»¤jªº¸ÜÃD¡A¯A¤Îªºª¾ÃÑÂI«D±`¼sªx¡C¥»³¹¤¶²Ð©Ê¯à½ÕÀu°ò¦ª¾ÃÑ¡B¥ßÅé¤ÀªR©M²`«×½ÕÀu¡A§ó¹ï0x¡BEasy-Monitor¡BClinic¡BAliNodeµ¥±`¥Î¤u¨ãªº¥Îªk©M©Ê¯à¶i¦æ¤F¹ï¤ñ¡C
²Ä5³¹ ´ú¸Õ¡B¶}·½»P¦Û¾Ç
¥»³¹±N¤¶²Ð´ú¸Õ¤Jªù¡B´ú¸Õ¶i¶¥©M¶}·½±a¨Óªº¾÷·|¡C´ú¸Õ¥i¥H³Ì¤p¤Æ°ÝÃD¡A»EµJ¸Ñ¨MÃøÂI¡A³o©M³q¹L¶}·½¶i¦æ¦Û¥D¾Ç²ß¦³¤@©wªº¬Û¦ü©Ê¡C¦]¦¹¡Aµ§ªÌ±N´ú¸Õ¡B¶}·½¡B¦Û¾Çµ²¦X¦b¤@°_¡A§Æ±æŪªÌ¾\Ū¥»³¹¤º®e¦Z¯à¦³·sªº·P®©¡A¦¨ªø¬°§ó¦nªº¶}µoªÌ¡C
¥»®Ñ¤¤ªº¦U³¹¤º®e°ò¥»¬O¬Û¤¬¿W¥ßªº¡A¦]¦¹¦U¦ìŪªÌ¥i¥H¬D¿ï¦Û¤v·P¿³½ìªº³¹¸`¾\Ū¡C³o¥»®Ñ¬O¡m¯T®Ñ¡n¨t¦C¹Ï®Ñªº²Ä3¨÷¡A²Ä1¨÷¥D­n¤¶²ÐNode.js°ò¦ª¾ÃÑ¡A²Ä2¨÷¥D­n¤¶²ÐNode.js WebÀ³¥Î¶}µo¡C¤T¨÷·f°t¾\Ū¡A®ÄªG§ó¦n¡C
¥Ø¼ÐŪªÌ
¥»®Ñªº¥Ø¼ÐŪªÌ¦³¥H¤U¤TÃþ¡C
?¥¿¦b¾Ç²ßJavaScript¶}µo¡A¹ïJavaScript»y¨¥¦³°ò¥»ªº¤F¸Ñ©M¼ô±x«×¡A¥B§Æ±æ¯à°÷¤F¸ÑJavaScriptµo®i±¡ªpªº¤H¡C
?¥¿±q¨ÆJavaScript¶}µo¬ÛÃö¤u§@¡A¼ô±xJavaScriptªº°ò¥»¶}µo­n»â¡A¦b¤é±`¤u§@¤¤¸g±`±µÄ²Node.js¡A·Q­n²`¤J¤F¸ÑWebÀ³¥Î¡BBFF¡BAPI¥N²zµ¥¤º®e¡A¥H¶i¤@¨B´£¤É¦Û§ÚªºWeb¤uµ{®v¡]¦¹³B¤£°Ï¤À«eºÝ»P¦ZºÝ¡^¡C
?¨ã¦³·¥«Èºë¯«¡A·Q­n²`¤J¬ã¨sJavaScript»y¨¥¤ÎNode.jsªº¥þ´Ì¤uµ{®v¡C
¾\Ū·Ç³Æ
­n·Q¹B¦æ¥»®Ñ¤¤ªº¥Ü¨Ò¡A»Ý­n¦w¸Ë¥H¤U¨t²Î¤Î³n¥ó¡C
?¾Þ§@¨t²Î¡G±ÀÂËLinux¡A¥H¤ÎmacOS 10.9©Î¥H¤Wª©¥»¡A¨Ï¥ÎWindows¾Þ§@¨t²Î¥i¯à·|¦b¹B¦æ¥Ü¨Ò®É³ø¿ù¡C
?ÂsÄý¾¹¡GGoogle Chrome¡BSafari¡BFirefox¡BInternet Explorer 11¡BWindows Edge¡C
?¹B¦æÀô¹Ò¡GNode.js 8.x¦ÜNode.js 18.x§¡¥i¡C
¤º®e²¤¶¡G

Node.js¶}µo²³æ¡A©Ê¯à·¥¦n¡A¤@¸gµo¥¬«K¦¨¤F©ú¬P¯Å¶µ¥Ø¡CÀHµÛ¤j«eºÝ»â°ìªº½´«kµo®i¡A¸ó¥­»O¶}µo¡BAPIºc«Ø¡BWebÀ³¥Î¶}µoµ¥³õ´º·U¥[±`¨£¡ANode.js¤]¦¨¬°¤j«eºÝ¶}µoªº¥²³Æ¡§¯«¾¹¡¨¡C¥»®Ñ»EµJ¤_Node.js°ª¯Å§Þ³N¡C²Ä1³¹¤¶²Ð¦p¦ó½s¼gnpm¼Ò¶ô¡A¨ä¤¤¯A¤Î¹ï³\¦h±`¥Î¼Ò¶ôªº¸ÑªR¡C²Ä2³¹¤¶²Ð¦p¦ó½s¼g¥ø·~¯ÅWeb¶}µo®Ø¬[¡A¥D­n­åªR¤F¶}µo®Ø¬[ªº¬yµ{¡C²Ä3³¹¤¶²Ð¦p¦óºc«Ø¨ã¦³Node.js¯S¦âªºªA°È¡AµÛ­«Á¿¸Ñ¤F­¶­±§YªA°Èªº·§©À¡C²Ä4³¹¤¶²ÐªA°È¾¹³¡¸p»P©Ê¯à½ÕÀuªº¬ÛÃöª¾ÃÑ¡C²Ä5³¹¤¶²ÐTDD©MBDD²z©À¡A¥H¤Î¦p¦ó½s¼g´ú¸Õ¥Î¨Ò¡A¦P®É¤À¨É¤Fµ§ªÌÃö¤_¶}·½©M¦Û¾Çªº¬Ýªk¡C°ò¤_Node.js¤£Â_¶i¶¥¡A¹ê²{°ª¯ÅÀ³¥Î¶}µo¬O²Å¦X§Þ³NÁͶժº¡A¤]¬O¥þ´Ì¤uµ{®v¥²¶·´x´¤ªº§Þ¯à¡C¦]¦¹¡A¦U¦ì¤j«eºÝ»â°ì¤Î¦ZºÝ»â°ìªº´ú¸Õ¡B¹Bºû¡B³n¥ó¶}µo±q·~ªÌ³£¾A¦X¾\Ū¥»®Ñ¡C
¥Ø¿ý¡G

²Ä1³¹ ¦Û¤v°Ê¤â¼gnpm¼Ò¶ô 1
1.1 °ò¦§Þ¯à 1
1.1.1 Àô¹ÒÅܶq 2
1.1.2 Zsh 2
1.1.3 Vim 3
1.1.4 Ack 4
1.1.5 Autojump 5
1.1.6 Git©MGitHub 5
1.1.7 ¬d¸ß¤åÀÉ 6
1.2 ½s¼gNode.js¼Ò¶ô 6
1.2.1 ªì©l¤Æ¼Ò¶ô 6
1.2.2 ´¶³q¼Ò¶ô 7
1.2.3 ¤G¶i¨î¼Ò¶ô 9
1.3 npm§Þ¥© 13
1.3.1 npm run 13
1.3.2 °t¸m 13
1.3.3 ¹_¤l 15
1.3.4 npm link 16
1.3.5 ¦Û©w¸q¦w¸Ë 16
1.3.6 ¼Ò¶ô½G¨­ 17
1.3.7 postinstall 17
1.3.8 ¸ô®| 18
1.3.9 ¼Ò¶ô¨Ì¿à¹Ï 20
1.4 ¹ê¨ÒÁ¿¸Ñ 22
1.4.1 kp 22
1.4.2 je 27
1.4.3 lazyclone 30
1.5 ½s¼g¸}¤â¬[ 31
1.5.1 ªì©l¤Æ¼Ò¶ô 32
1.5.2 CLI¤G¶i¨î¼Ò¶ô 32
1.5.3 ¨Ï¥Î¼ÒªO¤ÞÀº 34
1.5.4 ¸ÑªRCLI°Ñ¼Æ©M¸ô®| 35
1.5.5 npmµo¥¬ 40
1.6 ¶}·½©PÃä 40
1.6.1 «ùÄò¶°¦¨ 40
1.6.2 ´ú¸ÕÂл\²v 45
1.6.3 À²³¹ 45
1.6.4 ¤Ï¦V¾Ç²ß 46
1.7 ±ÀÂ˼Ҷô 46
1.7.1 debug 47
1.7.2 GitBook 48
1.7.3 colors©Mchalk 49
1.7.4 mkdirp 50
1.7.5 shelljs 50
1.7.6 moment 51
1.7.7 LRU½w¦s 52
1.7.8 semver 53
1.7.9 xtend 55
1.7.10 require-directory 56
1.7.11 yargs 57
1.8 ¥»³¹¤pµ² 59
²Ä2³¹ ¦Û¤v°Ê¤â½s¼g¥ø·~¯ÅWeb¶}µo®Ø¬[ 60
2.1 ¯S¦âWeb®Ø¬[ 60
2.1.1 LoopBack 61
2.1.2 Nest 63
2.1.3 ThinkJS 66
2.1.4 Egg.js 69
2.1.5 Next.js 70
2.1.6 Redwood 72
2.1.7 strapi 76
2.2 ¦Û¤v°Ê¤â¼g®Ø¬[ 78
2.2.1 °ò¦ª¾ÃÑ 78
2.2.2 ¥Í¦¨¶µ¥Ø 81
2.2.3 ²K¥[Mongoose 91
2.2.4 ²K¥[MVC¥Ø¿ý 96
2.2.5 ©´¤B¸ÑViews 103
2.2.6 ¸}¤â¬[ 112
2.2.7 ÀRºAAPI¼ÒÀÀ 114
2.2.8 §ó¦h¹ê½î 122
2.3 ¥»³¹¤pµ² 127
²Ä3³¹ ºc«Ø¨ã¦³Node.js¯S¦âªºªA°È 128
3.1 ªA°È·§Äý 128
3.1.1 ¬[ºcºtÅÜ 128
3.1.2 ±q¤j¦Ó¥þ¨ì¤p¦Ó¬ü 129
3.1.3 ·LªA°ÈÀ³¥Î 131
3.1.4 BFF¤¤¶¡¼h 134
3.1.5 SFF¦«ºÞ 137
3.2 ¨Ï¥ÎNode.jsÀu¤Æ­¶­±´è¬V 140
3.2.1 BigPipe 140
3.2.2 ªA°È¾¹ºÝ´è¬V¡]SSR¡^ 150
3.2.3 º¥¶i¦¡WebÀ³¥Î¡]PWA¡^ 153
3.2.4 ¦Pºc¶}µo 158
3.3 ­¶­±§YªA°È 162
3.3.1 ­¶­±¿W¥ß 162
3.3.2 ¼Ò¶ô©î¤À 164
3.3.3 BigView 165
3.3.4 API Proxy 175
3.3.5 ·½½X»¡©ú 176
3.4 ¨Ï¥ÎNode.js¶}µoRPCªA°È 178
3.4.1 RPC­ì²z 178
3.4.2 ³q«H¼h¨óij³]­p 179
3.4.3 ¦p¦ó¹ê²{RPC³q«H¨óij 180
3.4.4 DNode 181
3.4.5 Senaca 182
3.4.6 Moleculer 185
3.4.7 ³q¥ÎRPC 189
3.4.8 ªA°Èµo²{»Pªv²z 190
3.4.9 ¨å«¬¥Îªk 192
3.5 ¨Ï¥ÎNode.js¶}µo¿W¥ßªºAPI¼h 193
3.5.1 GraphQL 193
3.5.2 Micro®Ø¬[ 197
3.5.3 APIºôÃö 197
3.5.4 ¦b½uªA°È 199
3.6 ¥»³¹¤pµ² 199
²Ä4³¹ ªA°È¾¹³¡¸p»P©Ê¯à½ÕÀu 200
4.1 ªA°È¾¹³¡¸p 200
4.1.1 ªA°È¾¹¿ïÁÊ 201
4.1.2 ¤â°Ê³¡¸p 204
4.1.3 ³q¹LDocker³¡¸p 211
4.1.4 ¦Û°Ê³¡¸p 224
4.1.5 APM»PºÊ±± 231
4.2 ©Ê¯à½ÕÀu 239
4.2.1 °ò¦ª¾ÃÑ 239
4.2.2 ¥ßÅé¤ÀªR 246
4.2.3 ²`«×©Ê¯à½ÕÀu 250
4.3 ¤ÀªREasy-monitor 260
4.4 ¥»³¹¤pµ² 262
²Ä5³¹ ´ú¸Õ¡B¶}·½»P¦Û¾Ç 263
5.1 ´ú¸Õ¤Jªù 264
5.1.1 ¤°¤\¬O´ú¸Õ 264
5.1.2 TDD©MBDD 265
5.1.3 ³Ì¤p¤Æ°ÝÃD 268
5.1.4 Baretest 269
5.1.5 TAP©MTape 271
5.1.6 Mocha 274
5.1.7 Jest 278
5.2 ´ú¸Õ¶i¶¥ 283
5.2.1 ´ú¸Õªº¦n³B 283
5.2.2 ¬õ¨ìºñ¤u§@¬y 284
5.2.3 Cucumber 285
5.2.4 Spy¡BStub©MMock 288
5.2.5 «ùÄò¶°¦¨ 291
5.2.6 ¦p¦ó½s¼g´ú¸Õ®Ø¬[ 292
5.2.7 ¦p¦ó¥´³y¶}·½¶µ¥Ø 293
5.2.8 ¶i¤@¨B¾Ç²ßTypeScript 294
5.3 ¶}·½±a¨Óªº¾÷·|©M«ä¦Ò 310
5.3.1 Clipanion 310
5.3.2 ¾÷·|»P¬D¾Ô 312
5.3.3 ±Ó·P¥B·|¾Ç 313
5.3.4 ¦¨´N§ó¦nªº¦Û¤v 313
5.4 ¥»³¹¤pµ² 314
§Ç¡G