﻿1
00:00:01,530 --> 00:00:03,010
‫Instruktur: Dalam beberapa

2
00:00:03,010 --> 00:00:05,020
‫kuliah sebelumnya, saya harap Anda

3
00:00:05,020 --> 00:00:06,870
‫mulai mendapatkan dasar-dasar pengembangan Express.

4
00:00:06,870 --> 00:00:10,190
‫Dan sekarang adalah waktu yang tepat untuk menyelami lebih

5
00:00:10,190 --> 00:00:11,750
‫dalam tentang cara

6
00:00:11,750 --> 00:00:14,380
‫kerja Express, dan untuk itu kita perlu

7
00:00:14,380 --> 00:00:16,633
‫berbicara tentang middleware dan siklus permintaan-respons.

8
00:00:17,550 --> 00:00:20,670
‫Jadi sebenarnya inti dari pengembangan Express

9
00:00:20,670 --> 00:00:21,770
‫adalah

10
00:00:21,770 --> 00:00:24,960
‫memahami dan kemudian menggunakan siklus permintaan-tanggapan.

11
00:00:24,960 --> 00:00:27,280
‫Jadi saya ingin membuat ide itu

12
00:00:27,280 --> 00:00:29,890
‫benar-benar jelas secara visual dalam video ini.

13
00:00:29,890 --> 00:00:32,410
‫Jadi untuk memulai siklus permintaan-respons,

14
00:00:32,410 --> 00:00:36,720
‫atau aplikasi Express menerima permintaan ketika seseorang menyentuh server

15
00:00:36,720 --> 00:00:39,310
‫yang kemudian akan membuat objek

16
00:00:39,310 --> 00:00:41,170
‫permintaan dan respons.

17
00:00:41,170 --> 00:00:43,530
‫Data itu kemudian akan digunakan

18
00:00:43,530 --> 00:00:48,160
‫dan diproses untuk menghasilkan dan mengirim kembali respons yang berarti.

19
00:00:48,160 --> 00:00:50,740
‫Sekarang, untuk memproses data itu,

20
00:00:50,740 --> 00:00:53,740
‫di Express kami menggunakan sesuatu yang disebut

21
00:00:53,740 --> 00:00:57,220
‫middleware, yang dapat memanipulasi permintaan atau objek respons.

22
00:00:57,220 --> 00:01:00,680
‫Atau benar-benar mengeksekusi kode lain yang kita suka.

23
00:01:00,680 --> 00:01:02,820
‫Jadi middleware tidak selalu

24
00:01:02,820 --> 00:01:05,230
‫hanya tentang permintaan atau objek

25
00:01:05,230 --> 00:01:08,070
‫respons, tetapi biasanya sebagian besar tentang permintaan.

26
00:01:08,070 --> 00:01:10,880
‫Dan sebenarnya, kami sudah menggunakan middleware sebelumnya.

27
00:01:10,880 --> 00:01:15,130
‫Kami menggunakan Express dot JSON untuk mendapatkan akses ke badan permintaan

28
00:01:15,130 --> 00:01:16,600
‫pada objek permintaan.

29
00:01:16,600 --> 00:01:18,250
‫Ingat itu?

30
00:01:18,250 --> 00:01:20,600
‫Sekarang disebut middleware ingat

31
00:01:20,600 --> 00:01:23,930
‫karena itu adalah fungsi yang dijalankan antara,

32
00:01:23,930 --> 00:01:26,570
‫jadi di tengah menerima permintaan

33
00:01:26,570 --> 00:01:28,540
‫dan mengirim respons.

34
00:01:28,540 --> 00:01:31,020
‫Dan sebenarnya, kita dapat mengatakan bahwa di

35
00:01:31,020 --> 00:01:33,010
‫Express, semuanya adalah middleware.

36
00:01:33,010 --> 00:01:35,270
‫Bahkan definisi rute kami.

37
00:01:35,270 --> 00:01:38,460
‫Jadi sekali lagi, bahkan ketika kita mendefinisikan rute

38
00:01:38,460 --> 00:01:42,120
‫kita, kita dapat menganggap fungsi pengendali rute yang kita tulis

39
00:01:42,120 --> 00:01:43,600
‫sebagai fungsi middleware.

40
00:01:43,600 --> 00:01:45,120
‫Mereka hanyalah fungsi

41
00:01:45,120 --> 00:01:48,010
‫middleware yang hanya dijalankan untuk rute tertentu.

42
00:01:48,010 --> 00:01:49,290
‫Oke?

43
00:01:49,290 --> 00:01:52,840
‫Sekarang beberapa contoh middleware adalah Express dot JSON, yang

44
00:01:52,840 --> 00:01:54,860
‫juga disebut body-parser, dan yang

45
00:01:54,860 --> 00:01:56,870
‫sudah kita gunakan sebelumnya.

46
00:01:56,870 --> 00:01:59,100
‫Atau beberapa fungsi logging,

47
00:01:59,100 --> 00:02:02,130
‫atau menyetel beberapa header http tertentu.

48
00:02:02,130 --> 00:02:05,760
‫Kemungkinannya benar-benar tidak terbatas dengan middleware.

49
00:02:05,760 --> 00:02:08,460
‫Baiklah, dan sekarang dalam istilah yang lebih

50
00:02:08,460 --> 00:02:11,000
‫teknis, kami mengatakan bahwa semua middleware

51
00:02:11,000 --> 00:02:12,370
‫bersama yang kami

52
00:02:12,370 --> 00:02:15,200
‫gunakan di aplikasi kami, disebut middleware Stack.

53
00:02:15,200 --> 00:02:17,720
‫Apa yang sangat penting untuk diingat

54
00:02:17,720 --> 00:02:20,230
‫di sini, adalah bahwa urutan middleware

55
00:02:20,230 --> 00:02:22,540
‫dalam tumpukan, sebenarnya ditentukan oleh urutan

56
00:02:22,540 --> 00:02:24,500
‫mereka didefinisikan dalam kode.

57
00:02:24,500 --> 00:02:27,110
‫Jadi middleware yang muncul pertama kali

58
00:02:27,110 --> 00:02:29,920
‫dalam kode, dieksekusi sebelum yang muncul kemudian.

59
00:02:29,920 --> 00:02:33,170
‫Jadi urutan kode sangat penting di Express.

60
00:02:33,170 --> 00:02:34,360
‫Oke?

61
00:02:34,360 --> 00:02:38,010
‫Sekarang, Anda dapat memikirkan seluruh proses seperti ini, objek

62
00:02:38,010 --> 00:02:40,120
‫permintaan dan respons kami

63
00:02:40,120 --> 00:02:41,890
‫yang dibuat pada

64
00:02:41,890 --> 00:02:45,310
‫awalnya melewati setiap middleware tempat mereka diproses, atau

65
00:02:45,310 --> 00:02:48,710
‫di mana hanya beberapa kode lain yang dieksekusi.

66
00:02:48,710 --> 00:02:51,370
‫Kemudian di akhir setiap fungsi middleware, fungsi

67
00:02:51,370 --> 00:02:53,150
‫berikutnya dipanggil, yang merupakan

68
00:02:53,150 --> 00:02:55,340
‫fungsi yang dapat kita akses di

69
00:02:55,340 --> 00:02:56,860
‫setiap fungsi middleware.

70
00:02:56,860 --> 00:02:59,580
‫Sama seperti objek request dan response.

71
00:02:59,580 --> 00:03:02,960
‫Dan tentu saja kita akan melihat ini dalam kode di video berikutnya.

72
00:03:02,960 --> 00:03:05,375
‫Jadi ketika kita memanggil fungsi

73
00:03:05,375 --> 00:03:08,470
‫berikutnya, middleware berikutnya dalam stack akan dieksekusi

74
00:03:08,470 --> 00:03:11,960
‫dengan objek request dan response yang sama persis.

75
00:03:11,960 --> 00:03:14,480
‫Dan itu terjadi dengan semua middlewares sampai

76
00:03:14,480 --> 00:03:16,460
‫kita mencapai yang terakhir.

77
00:03:16,460 --> 00:03:17,830
‫Dan seperti

78
00:03:17,830 --> 00:03:20,360
‫ini, permintaan awal dan objek

79
00:03:20,360 --> 00:03:23,400
‫respons melewati setiap middleware langkah demi langkah.

80
00:03:23,400 --> 00:03:25,490
‫Dan Anda dapat menganggap

81
00:03:25,490 --> 00:03:29,190
‫seluruh proses ini sebagai semacam jalur yang dilalui data

82
00:03:29,190 --> 00:03:33,440
‫kami, jadi seperti yang disalurkan dari permintaan ke respons akhir.

83
00:03:33,440 --> 00:03:34,472
‫Baiklah?

84
00:03:34,472 --> 00:03:36,900
‫Sekarang tentang fungsi middleware terakhir itu,

85
00:03:36,900 --> 00:03:40,230
‫biasanya merupakan pengendali rute seperti yang kita kodekan sebelumnya.

86
00:03:40,230 --> 00:03:43,250
‫Jadi di handler ini kita sebenarnya tidak memanggil fungsi

87
00:03:43,250 --> 00:03:45,270
‫next untuk pindah ke middleware berikutnya.

88
00:03:45,270 --> 00:03:47,950
‫Sebagai gantinya, kami akhirnya mengirim data

89
00:03:47,950 --> 00:03:49,800
‫respons kembali ke klien.

90
00:03:49,800 --> 00:03:50,633
‫Dan seperti

91
00:03:50,633 --> 00:03:53,983
‫ini, kami kemudian menyelesaikan apa yang disebut siklus permintaan-tanggapan.

92
00:03:55,380 --> 00:03:58,590
‫Jadi siklus permintaan-tanggapan benar-benar segala sesuatu yang

93
00:03:58,590 --> 00:04:00,900
‫kita bicarakan di sini bersama-sama.

94
00:04:00,900 --> 00:04:03,040
‫Ini dimulai dengan permintaan yang masuk,

95
00:04:03,040 --> 00:04:05,980
‫kemudian mengeksekusi semua middleware di tumpukan middleware

96
00:04:05,980 --> 00:04:07,240
‫langkah demi

97
00:04:07,240 --> 00:04:10,513
‫langkah, dan akhirnya mengirim respons untuk menyelesaikan siklus.

98
00:04:11,370 --> 00:04:13,900
‫Jadi Anda lihat, itu benar-benar tidak rumit.

99
00:04:13,900 --> 00:04:16,450
‫Ini sebenarnya hanya proses linier.

100
00:04:16,450 --> 00:04:19,200
‫Tetapi saya berharap seseorang akan menunjukkan kepada saya

101
00:04:19,200 --> 00:04:22,000
‫sesuatu seperti ini ketika saya belajar cara membuat aplikasi Express.

102
00:04:22,000 --> 00:04:23,420
‫Maksud saya, saya

103
00:04:23,420 --> 00:04:26,090
‫dapat membangunnya, tetapi pada awalnya saya

104
00:04:26,090 --> 00:04:29,230
‫tidak begitu memahami seluruh siklus permintaan-tanggapan seperti ini.

105
00:04:29,230 --> 00:04:30,760
‫Itu sangat membingungkan.

106
00:04:30,760 --> 00:04:33,280
‫Jadi itulah mengapa saya menunjukkan ini kepada

107
00:04:33,280 --> 00:04:36,710
‫Anda, karena saya yakin akan jauh, jauh, lebih mudah

108
00:04:36,710 --> 00:04:38,800
‫bagi Anda untuk pindah ke

109
00:04:38,800 --> 00:04:42,383
‫kursus sekarang, setelah memahami dengan tepat cara kerja aplikasi Express.

