�x���¹�������ֱ�ӳ���
�gӭ���R�ЈD�W(w��ng) Ո | ע��

���] �•r�ڵ�Node.js���T

���ߣ����|��
�����磺���A��W����������r�g��2018-01-01
�_���� 32�_ 퓔�(sh��)�� 279
�� �D �r:¥39.2(8.0��) ���r  ¥49.0 ��䛺�ɿ������T�r
����ُ��܇ �ղ�
�_������ ȫ�����]
?�½������س���
������Ǖ�����>
�I�^����Ʒ����߀�I��

�•r�ڵ�Node.js���T �����Ϣ

�•r�ڵ�Node.js���T ������ɫ

Node.js��һ�T�_Դ������Web�������Z�������и߲��l(f��)�����������c�����ғ���һ��ʮ�ֻ��S���_�l(f��)����^(q��)���cRuby��Python���Z����ȣ�Node.js�����p�������ڛ]�н���������ʹ������˺ܿ���������ص��_�l(f��)�����ի@��һ�������O���ڇ�����Node.js���S����I(y��)�Ы@���ˏV����������ȡ����һϵ�еđ��óɹ���Ȼ�����S�����g�IJ��������ECMAScript2015���˜˜ʼ����_�����F(xi��n)�е����ĕ�����׃����Щ�^�r�������������µļ��g��������B��һϵ��ȫ�µ��Z�����Ժ͘˜ʣ��Ա�׌�x���ڌW�����A֪�R��ͬ�r�o���¼��g�İl(f��)չ�� �����֞�8��6��������v����Node.js�ĸ��N���A������ʹ�x�߿������T��ͬ�r�Y���Z��*�İl(f��)չڅ����׌�x���܉�o�����g�������������@Node.js��Webվ�c�_�l(f��)�����xϵ�y(t��ng)�еđ���չ�_����Node.js�ڴ����Ŀ�еĶ�λ�c��������Ԕ�����f���� ����������Node.js���T���m��δ���|�^Node���x���Լ���У�ČW����x��Ҳ�m������ߵ�ԺУ����Ӗ�WУ���P���I(y��)�Ď����̌W������

�•r�ڵ�Node.js���T ���ݺ���

�����_ʼ�W���_�l(f��)�������õ��Ŀ�������Z�Լ���(ji��)���@�Ì��H����Ԍ��H���Þ鱳�����U��Node.js�ڌ��H�Ŀ�еĶ�λ�͝��ڵ������m�ϛ]��Node.js�����x����ּ�ڿ������ֵ������_�l(f��)С�͑���

�•r�ڵ�Node.js���T Ŀ�

Ŀ� ��1�� ���A֪�R 1 1.1 Node��ʲô 1 1.1.1 Node�cJavaScript 1 1.1.2 runtime��VM 2 1.2 Node�ăȲ��C�� 3 1.2.1 �Ξ���{ 3 1.2.2 ͬ��/����������/������ 4 1.2.3 �ξ��̺Ͷྀ�� 6 1.2.4 ���кͲ��l(f��) 7 1.3 �¼�ѭ�h(hu��n)��Event loop�� 8 1.3.1 �¼��cѭ�h(hu��n) 8 1.3.2 Node�е��¼�ѭ�h(hu��n) 9 1.3.3 process.nextTick 13 1.4 ���Y 16 1.5 �����YԴ 16 ��2�� ����ģ�K 17 2.1 Module 17 2.1.1 JavaScript��ģ�KҎ(gu��)�� 17 2.1.2 require�����\�ЙC�� 18 2.1.3 require���[�� 20 2.1.4 ģ�K���c������ 20 2.2 Buffer 22 2.2.1 Buffer�Ę����c�D�Q 23 2.2.2 Buffer��ƴ�� 24 2.3 File System 26 2.4 HTTP���� 30 2.4.1 ��(chu��ng)��HTTP ������ 30 2.4.2 ̎��HTTPՈ�� 32 2.4.3 Response���� 34 2.4.4 �ς���(sh��)��(j��) 35 2.4.5 HTTP�͑��˷��� 38 2.4.6 ��(chu��ng)������������ 39 2.5 TCP���� 40 2.5.1 TCP��Socket 41 2.5.2 ��(chu��ng)��TCP������ 41 2.6 ����ȫ�Ă�ݔ��ʽ——SSL 42 2.6.1 ʲô��SSL 43 2.6.2 SSLԭ�� 43 2.6.3 ���Q�����c�nj��Q���� 44 2.6.4 �P��CA 45 2.6.5 ��(chu��ng)��HTTPS���� 45 2.7 WebSocket 48 2.7.1 ����ͨԒ 48 2.7.2 ��ʲôҪ��WebSocket 49 2.7.3 WebSocket�cNode 50 2.8 Stream 50 2.8.1 Stream �ķN� 50 2.8.2 ReadLine 53 2.8.3 �Զ��xStream 54 2.9 Events 55 2.9.1 �¼��ͱO(ji��n) �� 55 2.9.2 ̎��error�¼� 56 2.9.3 �^��Eventsģ�K 57 2.10 ���M�̷��� 58 2.10.1 child_processģ�K 58 2.10.2 spawn 58 2.10.3 fork 59 2.10.4 exec��execFile 60 2.10.5 ������֮�g�ı��^ 62 2.10.6 �M���gͨ�� 64 2.10.7 Cluster 65 2.11 Process���� 66 2.11.1 �h(hu��n)��׃�� 67 2.11.2 �������¼� 67 2.11.3 һ�����ӣ��޸����ڵĕr�^(q��) 68 2.12 Timer 70 2.12.1 ����API 70 2.12.2 ���r���е�this 71 2.13 С�Y 72 2.14 �����YԴ 72 ��3�� ��ES6�����Node 73 3.1 �•r����EMCAScript 73 3.1.1 JavaScript��ȱ�� 73 3.1.2 Node���˜˜ʵ�֧�� 74 3.1.3 ʹ��nvm����Node�汾 75 3.2 �K�������� 75 3.2.1 ES5�е������� 75 3.2.2 let�P�I�� 77 3.2.3 const�P�I�� 78 3.3 ��(sh��)�M 78 3.3.1 find()��findIndex() 79 3.3.2 from()���� 79 3.3.3 fill()���� 81 3.3.4 ��(sh��)�M�ı�v 81 3.3.5 TypedArray 82 3.4 ����(sh��) 82 3.4.1 ����(sh��)��Ĭ�Jֵ 82 3.4.2 Spread�\��� 83 3.4.3 ���^����(sh��) 83 3.4.4 ���^����(sh��)������ 86 3.5 Set��Map 87 3.5.1 Set��WeakSet 87 3.5.2 Map��WeakMap 88 3.6 Iterator 89 3.6.1 Java�е�Iterator 89 3.6.2 ES6�е�Iterator 89 3.6.3 Iterator�ı�v 90 3.7 ���� 91 3.7.1 �µķ��� 91 3.7.2 ����ı�v 92 3.8 � 93 3.8.1 ���Ժ͘��캯��(sh��) 94 3.8.2 ��� 94 3.8.3 __proto__ 95 3.8.4 �o�B(t��i)���� 96 3.9 ��^�� 96 3.9.1 ES5�е��^�� 96 3.9.2 ES6�е��^�� 98 3.9.3 Node�е���^�� 100 3.10 ES6��ģ�K���˜� 101 3.11 ʹ��babel���D�Q���a 102 3.12 С�Y 106 3.13 �����YԴ 106 ��4�� �����������a 107 4.1 ���������ķ���ֵ 108 4.2 �M�����{���� 108 4.2.1 ���{�cCPS 108 4.2.2 ʹ��asyncģ�K�������{ 110 4.3 ʹ��Promise 112 4.3.1 Promise�Ěvʷ 112 4.3.2 Promise��ʲô 113 4.3.3 ES2015�е�Promise 114 4.3.4 Promise�ij���API 116 4.3.5 ʹ��Promise�M���������a 119 4.3.6 ������ģ�K��Promise 120 4.4 Generator��һ�N�^�ɷ��� 122 4.4.1 Generator��ʹ�� 122 4.4.2 Generator����(sh��)�Ĉ�(zh��)�� 123 4.4.3 Generator�е��e�`̎�� 126 4.4.4 ��Generator�M���������� 127 4.4.5 Generator���Ԅӈ�(zh��)�� 128 4.5 ���{�ĽK�c——async/await 131 4.5.1 async����(sh��)�ĸ��� 131 4.5.2 await�P�I�� 133 4.5.3 ��ѭ�h(hu��n)��ʹ��async���� 135 4.5.4 async��awaitС�Y 136 4.5.5 async ����(sh��)��ȱ�c 137 4.6 ���Y 138 4.7 �����YԴ 139 ��5�� ʹ��Koa2����Webվ�c 140 5.1 Node Web��ܵİl(f��)չ�v�� 140 5.1.1 Connect 140 5.1.2 Express 141 5.1.3 Koa 141 5.2 ����Ҏ(gu��)�� 142 5.2.1 ������� 142 5.2.2 ���g�x�� 142 5.3 Koa���T 143 5.3.1 Koa1.x �cKoa2 143 5.3.2 context���� 144 5.4 middleware 148 5.4.1 ���g���ĸ��� 148 5.4.2 next���� 150 5.4.3 ���g���Ĵ����{�� 151 5.4.4 һ������——��Ό��F(xi��n)���r푑� 152 5.5 ���÷��յČ��F(xi��n) 154 5.5.1 �o�B(t��i)�ļ����� 154 5.5.2 ·�ɷ��� 155 5.5.3 ��(sh��)��(j��)�惦 156 5.5.4 �ļ��ς� 160 5.5.5 �����Ⱦ 163 5.6 �������ѵ�Web���� 165 5.6.1 �ς��ļ���C 166 5.6.2 ʹ��Cookie�M��������C 167 5.6.3 ʹ��Sessionӛ䛕�Ԓ��B(t��i) 170 5.7 ʹ��Redis�M�г־û� 173 5.7.1 Node��Redis�Ľ��� 173 5.7.2 CURD���� 174 5.7.3 ʹ��Redis�־û�session 176 5.7.4 Redis��Node�еđ��� 179 5.8 KoaԴ�a���� 180 5.8.1 Koa�Ć����^�� 180 5.8.2 ���g���ļ��d 181 5.8.3 listen()���� 184 5.8.4 next()�creturn next() 185 5.8.5 �P��Can't set headers after they are sent. 186 5.8.6 Context����Č��F(xi��n) 187 5.8.7 Koa�ă�(y��u)ȱ�c 189 5.9 �W(w��ng)վ���� 190 5.9.1 ���ز��� 190 5.9.2 �������Ʒ������C�� 191 5.9.3 ͨ�^GitHub pages������ 193 5.10 ���Y 194 5.11 �����YԴ 194 ��6�� ���xϵ�y(t��ng)���_�l(f��) 195 6.1 ���x���g���� 196 6.2 ���g������ 196 6.2.1 request.js 196 6.2.2 cheerio 197 6.2.3 ��Ϣ��� 199 6.3 �����_�ּ� 199 6.3.1 �x��Ŀ�˾W(w��ng)վ 199 6.3.2 ����URL�Y�� 200 6.3.3 ����HTTP Ո�� 200 6.3.4 �������Ԫ�� 201 6.4 �M��������ȡ 203 6.4.1 ʹ���f�w�Ͷ��r�� 203 6.4.2 ���M�̲��� 205 6.5 ���x�ܘ��ĸ��M 206 6.5.1 �������̿��� 206 6.5.2 �ص�*����Ŀ�� 206 6.5.3 ���M��ģ�͵�ȱ�� 208 6.6 �M�̼ܘ��ĸ��M 208 6.6.1 ���a/���Mģ�� 208 6.6.2 ���a�ߵČ��F(xi��n) 209 6.6.3 ���M�ߵČ��F(xi��n) 211 6.7 �����x̎�� 213 6.7.1 ���x��Σ�� 213 6.7.2 �R�eһ�����x 213 6.7.3 ᘌ����x��̎�� 214 6.8 ���Y 216 6.9 �����YԴ 216 ��7�� �yԇ�c�{ԇ 217 7.1 ��Ԫ�yԇ 218 7.1.1 ʹ��Assertģ�K 218 7.1.2 Jasmine 219 7.1.3 Ava.js——����δ�� 224 7.2 �yԇ�F(xi��n)�д��a 227 7.3 ���߾S�ȵĜyԇ 228 7.3.1 ���ʜyԇ 228 7.3.2 ���ɜyԇ 229 7.3.3 ���m(x��)���� 229 7.4 �{ԇNode���� 231 7.4.1 �Z�Ժ�IDE 232 7.4.2 ʹ��node-inspector 233 7.4.3 ʹ��v8-inspector 234 7.4.4 ʹ��IDE�M���{ԇ 236 7.4.5 cpu profiling 237 7.5 ���Y 239 7.6 �����YԴ 239 ��8�� Node�е��e�`̎�� 240 8.1 Errorģ�K 241 8.2 �e�`̎���Ď׷N��ʽ 241 8.3 ��������Domain 243 8.3.1 Domainģ�K���� 243 8.3.2 Domainԭ�� 247 8.3.3 Domain���g�� 249 8.3.4 Domain��ȱ�� 249 8.4 ES6�е��e�`̎�� 250 8.4.1 Promise 250 8.4.2 Generator 250 8.4.3 async����(sh��) 251 8.5 Web�����е��e�`̎�� 251 8.5.1 ᘌ�ÿ��Ո����e�`̎�� 251 8.5.2 Express�е��e�`̎�� 252 8.5.3 Koa�е��e�`̎�� 252 8.6 ����ʽ�����cLet it crash 253 8.7 ���Y 256 8.8 �����YԴ 256 ���A �M�����������f(xi��)�� 257 A.1 �IJ���ϵ�y(t��ng)�f�� 257 A.2 Node�еąf(xi��)�� 258 ���B Lua�Z�Ժ��� 259 B.1 Lua�еĔ�(sh��)��(j��)��� 259 B.2 ���xһ������(sh��) 260 B.3 Lua�еąf(xi��)�� 261 ���C �����_�l(f��)һ��Node Web��� 263 C.1 ��ܵ��r�� 263 C.2 ��ܵ����� 264 C.3 ���Y 268 ���D MongoDB��Redis���� 269 D.1 NoSQL 269 D.2 MongoDB���� 269 D.3 Redis���� 271 ���E ʹ��Docker�팍�F(xi��n)̓�M�� 274 E.1 Docker��һЩ�������� 274 E.2 Redis���� 275 ���F npm�c������ 277 F.1 package.json�����ֶ� 277 F.2 ��ه�汾�Ĺ��� 278
չ�_ȫ��

�•r�ڵ�Node.js���T ���ߺ���

���|�����I(y��)�ڏB�T��Wܛ���WԺ��Ŀǰ��š�ڻ��켯�F������Webǰ���_�l(f��)������

��Ʒ�uՓ(0�l)
���o�uՓ����
�������]
����픲�
�ЈD�W(w��ng)
�ھ��ͷ�