�gӭ���R�ЈD�W(w��ng) Ո(q��ng) | ע��(c��)

���] �Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��)

���ߣ�����
�����磺��ӹ��I(y��)����������r(sh��)�g��2020-01-01
�_���� 24cm 퓔�(sh��)�� 25,413�
¥40.1(4.1��)?

�A(y��)�����փr(ji��)�ǰ����c���N���(d��ng)�����(y��u)�ݵ�ُ�I����Ӌ(j��)����ăr(ji��)�񣨲�����(y��u)��ȯ���֣����H��������δ�ص�ͬ�ڌ�(sh��)�H���փr(ji��)��

�� �D �r(ji��):¥80.2(8.1��)���r(ji��)  ¥99.0 ��䛺�ɿ�����(hu��)�T�r(ji��)
����ُ��܇ �ղ�
�_������ ȫ��(ch��ng)���]
?�½������س���
��ܰ��ʾ��5�����ˆD����Ҫ�������β؛���󲿷֞�ȫ�£����ܷ�/�o�ܷ⣩����(g��)�e�D��Ʒ��8-9���¡��п�
�Є�����(bi��o)ӛ����P�ȸ�����ȫԔ��(x��)Ʒ���f��>>
������Ǖ�����>

�Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��) ���(qu��n)��Ϣ

�Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��) ������ɫ

Node.js�_�l(f��)��(ji��n)�Σ����ܘO����һ��(j��ng)�l(f��)����������Ǽ�(j��)�(xi��ng)Ŀ���S����ǰ���I(l��ng)�����l(f��)չ����ƽ�_(t��i)�_�l(f��)��API��(g��u)����Web��(y��ng)���_�l(f��)�Ȉ�(ch��ng)�����ӳ�Ҋ��Node.jsҲ�ɞ��ǰ���_�l(f��)��**“����”��������Ҫ�v��Node.js Web��(y��ng)���_�l(f��)�漰��HTTP���A(ch��)֪�R(sh��)�������_�l(f��)�����Դ�aԭ������(sh��)��(j��)����(xi��ng)Ŀ��(sh��)��(zh��n)��ּ�����x��չʾ���ͨ�^Node.js��Koa����������ǰ����ɫ��Web��(y��ng)�á�����߀�v����Koa�еĺ������g��ԭ����չ����δ��Web��(y��ng)���_�l(f��)�İl(f��)չ����������Node.js�_�l(f��)Web��(y��ng)�þ������ֺ�(ji��n)�����_�l(f��)���١���(zh��)�и�Ч�����c(di��n)���dz��m�Ͽ��ٵ�������˸�λ��ǰ���I(l��ng)�򼰺���I(l��ng)��Ĝy(c��)ԇ���\(y��n)�S��ܛ���_�l(f��)�ĘI(y��)�߶�������x������

�Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��) ��(n��i)�ݺ�(ji��n)��

������Ҫ�v��Node.js Web��(y��ng)���_�l(f��)�漰��HTTP���A(ch��)֪�R(sh��)�������_�l(f��)��ܡ�Դ�aԭ������(sh��)��(j��)����(xi��ng)Ŀ��(sh��)��(zh��n), ּ�����x��չʾ���ͨ�^Node.js��Koa����������ǰ����ɫ��Web��(y��ng)��������߀�v����Koa�еĺ������g��ԭ��, չ����δ��Web��(y��ng)���_�l(f��)�İl(f��)չ������

�Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��) Ŀ�

Ŀ�


��1�� ��һ��Web���Koa 1
1.1 Koa��(ji��n)�� 1
1.1.1 ��(y��ng)��(ch��ng)�� 2
1.1.2 �_�l(f��)Ҫ�c(di��n) 3
1.1.3 Koa���T 4
1.1.4 ��ʲô�x��Koa 7
1.2 Koa�_�ּ� 8
1.2.1 ���bKoa������ 9
1.2.2 ��(chu��ng)��Hello world 10
1.2.3 Ŀ䛽��� 11
1.2.4 Koa v2���g������ 20
1.2.5 ·�� 21
1.2.6 �ГQҕ�Dģ������ 25
1.2.7 Koa���a�{(di��o)ԇ 26
1.3 Node.js Web������M(j��n) 29
1.3.1 Node.js httpģ�K 29
1.3.2 *���Connect 29
1.3.3 ����(j��ng)������Express��� 33
1.3.4 ���dWeb�_�l(f��)���Koa 35
1.3.5 Express��Koa���ƴ 38
1.4 �y(c��)ԇ 38
1.4.1 Node.js�y(c��)ԇ��� 39
1.4.2 AVA�y(c��)ԇ��� 39
1.4.3 �y(c��)ԇ�����c���� 40
1.4.4 ��(sh��)�` 41
1.4.5 ������(n��i)�� 44
1.5 �����Y(ji��) 48

��2�� Koa�ĺ��ĔU(ku��)չ�C(j��)�ƣ����g�� 49
2.1 ���g�� 49
2.1.1 ʲô�����g�� 49
2.1.2 ������(du��)�� 57
2.1.3 �����һ�ӵ����g�� 66
2.1.4 �������g�� 88
2.2 ·�� 89
2.2.1 koa-router 89
2.2.2 ·��Ԕ�� 93
2.2.3 ��·�ɷŵ�Ŀ��� 98
2.3 ҕ�D 101
2.3.1 koa-views 101
2.3.2 Ĭ�J(r��n)ģ������Pug 102
2.3.3 viewsĿ�ģ���f�� 102
2.3.4 consolidate.js 104
2.4 �o�B(t��i)����(w��)ģ�K 104
2.4.1 koa-static 105
2.4.2 koa-send 106
2.4.3 koa-mount 108
2.4.4 koa-serve-static 108
2.5 �����Y(ji��) 109

��3�� HTTP��֪�ؕ�(hu��) 110
3.1 Ո(q��ng)��푑�(y��ng)ģ�� 110
3.1.1 Ո(q��ng)�� 112
3.1.2 푑�(y��ng) 112
3.1.3 ����Ҫ�c(di��n) 114
3.2 HTTPS 127
3.2.1 �����C�� 129
3.2.2 �(y��n)�C�c�Ԅ�(d��ng)�m(x��)�s 130
3.2.3 Node.js����(w��)��HTTPS���� 131
3.2.4 Nginx HTTPS���� 132
3.2.5 Nginx HTTPS����������� 134
3.3 ���� 136
3.3.1 �f(xi��)�h֧�� 136
3.3.2 mini-proxy 140
3.3.3 hiproxy 146
3.4 �����Y(ji��) 152

��4�� Koa����(x��) 153
4.1 ���A(ch��)֪�R(sh��) 153
4.1.1 ��ַ 153
4.1.2 HTTP�^�� 156
4.1.3 HTTP��(d��ng)�~ 161
4.1.4 HTTP��B(t��i)�a 163
4.1.5 Cookie 164
4.2 �@ȡ��ͬ����(sh��)��3�N���� 165
4.2.1 �@ȡ��������(sh��) 166
4.2.2 ����Ո(q��ng)���w 166
4.2.3 �@ȡ��ԃ�ַ��� 167
4.3 body���� 168
4.3.1 ģ�K��ه 168
4.3.2 ԭ�� 168
4.3.3 ��Ҋ��POST 169
4.4 Ո(q��ng)��Ď׷N��ʽ 175
4.4.1 ��� 176
4.4.2 AJAX 176
4.4.3 ������ 177
4.4.4 HTTPģ�K 178
4.4.5 ����ܛ�� 183
4.4.6 �y(c��)ԇ 183
4.5 API�_�l(f��) 185
4.5.1 API�ĺ�(ji��n)�Ό��� 185
4.5.2 푑�(y��ng)̎�� 189
4.5.3 RESTful API 190
4.5.4 API�L���b��(qu��n) 192
4.5.5 OAuth�b��(qu��n) 194
4.6 �������g�� 195
4.6.1 ��(hu��)Ԓ 196
4.6.2 ETag 198
4.6.3 �(y��n)�C�a 199
4.6.4 �����L���l�� 201
4.7 �����Y(ji��) 203

��5�� ��(sh��)��(j��)����A(ch��) 204
5.1 ���T 204
5.1.1 �x����(g��)��(sh��)��(j��)�� 204
5.1.2 �˽�MVC���ģ�� 206
5.1.3 ģ�͵Ĵ��a 207
5.1.4 ���a�M���Y(ji��)��(g��u) 209
5.2 MongoDB���b�c���� 210
5.2.1 ���b�c����ķ�ʽ 211
5.2.2 ��macOS�ϰ��b 212
5.2.3 ��Ubuntu�ϰ��b 212
5.2.4 ��Windows�ϰ��b 213
5.2.5 ���õĆ���(d��ng)��ʽ 213
5.3 Mongoose���A(ch��) 214
5.3.1 ��(ji��n)�� 214
5.3.2 ���T 215
5.3.3 Hello Mongoose 218
5.3.4 ���ĸ��� 221
5.3.5 ���h�IJ���� 223
5.3.6 Schema����� 232
5.4 Mongoose�M(j��n)�A 234
5.4.1 ģ�͔U(ku��)չ 234
5.4.2 ̓�M���� 237
5.4.3 ���{(di��o)�^�� 240
5.4.4 ����C(j��)�� 244
5.5 �����Y(ji��) 253

��6�� ��(sh��)��(j��)���M(j��n)�A 254
6.1 ��� 254
6.1.1 ʹ��skip��limit��(sh��)�F(xi��n)��� 255
6.1.2 ʹ��find��limit��(sh��)�F(xi��n)��� 256
6.1.3 ObjectID�ĽM�� 257
6.1.4 �͑�������ObjectID 259
6.2 �P(gu��n)“(li��n)��ԃ 259
6.2.1 �ۺϺ���(sh��) 260
6.2.2 �ۺϹܵ� 261
6.2.3 MapReduce 263
6.2.4 �P(gu��n)“(li��n)�P(gu��n)ϵ 264
6.2.5 aggregation 266
6.3 �„�(w��) 270
6.3.1 ���A���ύ�� 270
6.3.2 �؝L���� 273
6.4 �����{(di��o)��(y��u) 274
6.4.1 profile 275
6.4.2 explain 275
6.4.3 ������(y��u)�� 276
6.4.4 MongoDB���B�ӆ��} 282
6.4.5 MongooseDao 289
6.4.6 �������̿��� 296
6.5 �����Y(ji��) 303

��7�� ǰ��ҕ�Dģ�� 304
7.1 �o�B(t��i)����(w��)�� 304
7.1.1 publicĿ� 304
7.1.2 ��(sh��)�F(xi��n)ԭ�� 306
7.1.3 �o�B(t��i)����(w��) 307
7.1.4 �A(y��)̎�����g�� 314
7.2 ʹ��ģ�������M(j��n)�Є�(d��ng)�B(t��i)��Ⱦ 316
7.2.1 ģ������ԭ�� 316
7.2.2 ģ������Ҏ(gu��)�t 324
7.2.3 Vue 333
7.3 Webpack 342
7.3.1 ��Qʹ�c(di��n) 343
7.3.2 ģ�KҎ(gu��)�� 344
7.3.3 ģ�K���d�� 345
7.3.4 ģ�K����� 345
7.3.5 WebpackԔ�� 346
7.4 ǰ��˷��x 357
7.5 ǰ����Ⱦ 357
7.5.1 �͑�����Ⱦ 357
7.5.2 ����(w��)������Ⱦ 358
7.5.3 React����(w��)������Ⱦ 360
7.5.4 Serverless�r(sh��)������Ⱦ�� 363
7.6 �����Y(ji��) 365

��8�� �(xi��ng)Ŀ��(sh��)��(zh��n) 366
8.1 ���T 366
8.1.1 Docker 366
8.1.2 Docker Compose 369
8.1.3 �h(hu��n)��׃�� 370
8.1.4 ����(d��ng)����(w��)�� 373
8.2 Egg.js��� 373
8.2.1 ʹ���_�ּ� 374
8.2.2 Ŀ��f�� 375
8.2.3 ����(d��ng)����(w��)�� 379
8.2.4 ���a�Y(ji��)��(g��u) 381
8.2.5 ��(n��i)��(du��)�� 384
8.2.6 ���a�{(di��o)ԇ 386
8.2.7 ����U(ku��)չ�C(j��)�� 387
8.3 egg-cnodeԴ�a 388
8.3.1 Ŀ䛼s�� 388
8.3.2 appĿ� 390
8.3.3 ��(sh��)��(j��)���B�� 391
8.3.4 ģ�Ͷ��x 392
8.3.5 ��Controller��Service 393
8.3.6 ҕ�D��Ⱦ 396
8.3.7 ��(sh��)��(j��)ģ�� 399
8.3.8 API�_�l(f��) 400
8.3.9 �y(c��)ԇ 403
8.3.10 �b��(qu��n) 404
8.3.11 ���_(t��i)���� 412
8.3.12 ����(sh��)�(y��n) 412
8.4 �����Y(ji��) 413
չ�_ȫ��

�Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��) ���P(gu��n)�Y��

��(du��)���Ѓ�(y��u)��ij���T���f����������һ���������������Ը�����@����Ͷ�뾫���ij���T�����϶�������ѵ������廨�˶���r(sh��)�g�������@���������мȰ���Node.js���A(ch��)֪�R(sh��)��Ҳ�������F�Ĺ��̌�(sh��)�`�������ЏĘI(y��)���ṩ�˅����� �O�͕r(sh��)�g���،W(xu��)ǰ�ˡ��������� ���۷ǣ�winter�� �@������������꼼�g(sh��)��Ѫ�ĽY(ji��)�������ܺõ����x�߽�B���cNode.js Web��(y��ng)���_�l(f��)���P(gu��n)�ĺ���֪�R(sh��)���oՓ���������TNode.js߀�����M(j��n)��Node.js��I(y��)��(j��)��Ȍ�(sh��)�`�������ԅ����@������ֻҪ�������Node.js���@������ֵ������x�� �vӍ���g(sh��)���O(ji��n)���vӍIVWEB�F(tu��n)�(du��)ؓ(f��)؟(z��)�� �Ӳ� �@����һ����(ji��n)�ε�Node.js���T��������һ���v�^Node.js�l(f��)չ�vʷ�������I(l��ng)��Node.js�׌��L(f��ng)���������܌�(du��)���Node.js֪�R(sh��)�wϵ�M(j��n)�в�©�a(b��)ȱ�ĕ���������ʽ���ӵ�Node.js�D�������@�ӵĺÕ���ķdz��y���� ��Node.js����һ��C �U(ku��)չ������ ���� �����LJ���(n��i)���^֪����Node.js����������Node.js���Ї��İl(f��)չ�����˾޴��ؕ�I(xi��n)�������м��Ќ�(du��)Node.js Web�_�l(f��)֪�R(sh��)�c(di��n)��Ԕ��(x��)��B��Ҳ�Ќ�(du��)������ꌚ�F��(j��ng)�(y��n)����ȿ��Y(ji��)���dz�ֵ�ô����x���W(xu��)��(x��)�����h��λ�־�Ʒ�x�� ThinkJS������� ����y ����ǰ�������������^һ��(g��)�H�����ļ��g(sh��)���}����(d��ng)�r(sh��)�����ǂ�(g��)���}��ጵ÷dz�������׌��ӡ���H�������Ե�֪�����ڌ����r(sh��)���ҳ�M���ڴ���һ����������������һ���ܰч�(y��n)�C�ļ��g(sh��)���}�v��ͨ���׶�����һ������Ҫ�댢Node.js���B(t��i)�v��͸�أ������ǃ�(y��u)�����x�� ioredis���ߡ���Redis���Tָ�ϡ����� ����򑣨luin�� ĿǰNode.js�l(f��)չʮ��Ѹ�������Ǖ���ϵ�ЈD���������o�ɞ�Node.js������ע�����µĻ������@����2���ؽ�B��Node.js Web��(y��ng)���_�l(f��)�����������������W(xu��)��(x��)Node.js�ĺ���ԭ��������ʹ��Node.js�_�l(f��)����ϵ�y(t��ng)��Ҫ�E����ô�@����*ֵ���㾫�x�� Flarum������^(q��)��(chu��ng)ʼ�� �Զɣ�justjavac��

�Ǖ�(��2):Node.js Web��(y��ng)���_�l(f��) ���ߺ�(ji��n)��

���壨�W(w��ng)��i5ting����Node.js ���g(sh��)��������“Nodeȫ��”΢�Ź���̖(h��o)������ȫ�����g(sh��)��(sh��)�`�ߡ�����š�ڶ��֪��IT��I(y��)������ǰ���_�l(f��)������_�l(f��)����(sh��)��(j��)�����ȹ�����Ŀǰؓ(f��)؟(z��)��˾��(n��i)��Node.js�_�l(f��)�ͻ��A(ch��)����_�l(f��)������

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