﻿1
00:00:00,790 --> 00:00:02,400
‫Instruktur: Setelah bagian pengunggahan file

2
00:00:02,400 --> 00:00:03,960
‫dari bagian selesai,

3
00:00:03,960 --> 00:00:07,300
‫sekarang mari kita mengalihkan perhatian kita untuk mengirim email.

4
00:00:07,300 --> 00:00:09,610
‫Dan kami sebenarnya sudah mengirim email

5
00:00:09,610 --> 00:00:13,170
‫sebelumnya, untuk pengaturan ulang kata sandi, tetapi dalam beberapa kuliah berikutnya

6
00:00:13,170 --> 00:00:16,050
‫kami akan membawanya ke tingkat yang sama sekali baru.

7
00:00:16,050 --> 00:00:18,760
‫Dan yang akan kita lakukan adalah membuat

8
00:00:18,760 --> 00:00:21,350
‫template email dengan pug dan mengirim email

9
00:00:21,350 --> 00:00:23,270
‫asli menggunakan layanan SendGrid.

10
00:00:23,270 --> 00:00:25,220
‫Dan sekarang di kuliah pertama ini,

11
00:00:25,220 --> 00:00:27,630
‫kita akan membuat penangan email yang lebih kuat

12
00:00:27,630 --> 00:00:29,313
‫dari yang kita miliki sebelumnya.

13
00:00:30,870 --> 00:00:34,030
‫Jadi, mari kita buka folder utilitas kita,

14
00:00:34,030 --> 00:00:38,510
‫dan kemudian di sini, ingat, kita sudah memiliki file email.

15
00:00:38,510 --> 00:00:40,100
‫Tetapi saat ini

16
00:00:40,100 --> 00:00:43,660
‫yang kami miliki hanyalah penangan pengiriman email yang sangat

17
00:00:43,660 --> 00:00:46,810
‫sederhana, yang tidak dapat menerima banyak opsi.

18
00:00:46,810 --> 00:00:48,120
‫Jadi sekarang kita akan

19
00:00:48,120 --> 00:00:50,190
‫membangun solusi yang jauh lebih kuat di sini.

20
00:00:50,190 --> 00:00:51,450
‫Baiklah?

21
00:00:51,450 --> 00:00:53,833
‫Jadi yang akan saya lakukan adalah membuat kelas,

22
00:00:55,360 --> 00:00:57,503
‫dan kelas itu akan disebut email.

23
00:00:58,750 --> 00:01:01,690
‫Jadi modul. ekspor, dan

24
00:01:01,690 --> 00:01:03,950
‫begitu juga kelas ini yang

25
00:01:03,950 --> 00:01:07,103
‫akan kita ekspor dari file ini.

26
00:01:09,580 --> 00:01:13,340
‫Dan seperti biasa, sebuah kelas membutuhkan fungsi konstruktor, yang

27
00:01:13,340 --> 00:01:16,170
‫pada dasarnya adalah fungsi yang akan

28
00:01:16,170 --> 00:01:19,300
‫dijalankan ketika objek baru dibuat melalui kelas ini.

29
00:01:19,300 --> 00:01:20,910
‫Sekarang mari kita lihat

30
00:01:20,910 --> 00:01:23,393
‫bagaimana kita akan menggunakan kelas ini dalam praktik.

31
00:01:24,960 --> 00:01:26,770
‫Jadi idenya, pada dasarnya,

32
00:01:26,770 --> 00:01:28,840
‫setiap kali kita ingin mengirim email

33
00:01:28,840 --> 00:01:32,960
‫baru, adalah mengimpor kelas email ini dan kemudian menggunakannya seperti ini.

34
00:01:32,960 --> 00:01:34,713
‫Jadi membuat email baru,

35
00:01:35,970 --> 00:01:38,490
‫dan kemudian ke dalamnya, kami ingin menempelkan

36
00:01:38,490 --> 00:01:41,150
‫pengguna, dan pengguna itu akan berisi alamat

37
00:01:41,150 --> 00:01:44,563
‫email, dan juga nama jika kami ingin mempersonalisasi email.

38
00:01:45,800 --> 00:01:47,580
‫Dan juga URL.

39
00:01:47,580 --> 00:01:49,120
‫Dan contoh yang bagus

40
00:01:49,120 --> 00:01:53,200
‫untuk yang ini misalnya, URL reset untuk mengatur ulang kata sandi.

41
00:01:53,200 --> 00:01:54,033
‫Oke?

42
00:01:54,033 --> 00:01:56,660
‫Jadi, objek email baru, dan kemudian di

43
00:01:56,660 --> 00:01:59,000
‫sana kita ingin memanggil metode yang

44
00:01:59,000 --> 00:02:00,570
‫sebenarnya akan mengirim email.

45
00:02:00,570 --> 00:02:02,843
‫Jadi, katakanlah sendWelcome.

46
00:02:04,180 --> 00:02:07,410
‫Dan itu akan dikirim setiap

47
00:02:07,410 --> 00:02:10,910
‫kali pengguna baru mendaftar untuk aplikasi kita.

48
00:02:10,910 --> 00:02:11,743
‫Baiklah?

49
00:02:11,743 --> 00:02:14,630
‫Kami kemudian juga akan mengirim reset kata sandi.

50
00:02:14,630 --> 00:02:16,480
‫Dan cara kami mengatur semua

51
00:02:16,480 --> 00:02:18,950
‫ini akan membuatnya sangat mudah untuk kemudian terus

52
00:02:18,950 --> 00:02:21,490
‫menambahkan metode baru dan baru yang serupa dengan yang

53
00:02:21,490 --> 00:02:24,450
‫ini untuk mengirim email yang berbeda untuk skenario yang berbeda.

54
00:02:24,450 --> 00:02:25,370
‫Baiklah?

55
00:02:25,370 --> 00:02:28,400
‫Bagaimanapun, karena kita menempelkan pengguna dan URL

56
00:02:28,400 --> 00:02:31,670
‫ke email baru, maka konstruktor kita perlu mengambil

57
00:02:31,670 --> 00:02:33,633
‫ini sebagai argumen.

58
00:02:34,720 --> 00:02:36,560
‫Jadi pengguna dan URL.

59
00:02:36,560 --> 00:02:40,340
‫Dan apa yang terjadi di konstruktor ini adalah ini. untuk akan

60
00:02:43,020 --> 00:02:47,130
‫sama dengan pengguna. email Kemudian kami

61
00:02:49,926 --> 00:02:53,210
‫juga ingin menentukan nama depan pengguna,

62
00:02:53,210 --> 00:02:56,433
‫sekali lagi untuk mempersonalisasi email.

63
00:02:59,903 --> 00:03:03,170
‫Dan itulah pengguna. name dan mari

64
00:03:03,170 --> 00:03:08,170
‫kita pisahkan dan ambil hanya elemen pertama dalam array yang dihasilkan.

65
00:03:09,530 --> 00:03:11,210
‫Jadi kami melakukan

66
00:03:11,210 --> 00:03:16,210
‫ini sebelumnya, tetapi kemudian juga ini. url sama dengan URL yang masuk.

67
00:03:17,010 --> 00:03:22,010
‫Akhirnya, mari kita juga mengatur ini. dari sini.

68
00:03:22,500 --> 00:03:24,450
‫jadi pada dasarnya di tingkat objek.

69
00:03:24,450 --> 00:03:26,970
‫Jadi setiap objek yang dibuat dari kelas

70
00:03:26,970 --> 00:03:28,830
‫ini akan mendapatkan properti ini.

71
00:03:28,830 --> 00:03:32,720
‫Jadi yang ini akan mirip dengan yang kita miliki di sini.

72
00:03:32,720 --> 00:03:35,020
‫Jadi pada dasarnya ini dari, jadi

73
00:03:35,020 --> 00:03:36,760
‫mari kita salin tapi

74
00:03:36,760 --> 00:03:40,230
‫bagus untuk memilikinya di satu tempat sentral seperti ini.

75
00:03:40,230 --> 00:03:42,200
‫Sekarang satu hal yang benar-benar ingin

76
00:03:42,200 --> 00:03:45,090
‫saya lakukan, pada dasarnya adalah mendefinisikan alamat email

77
00:03:45,090 --> 00:03:46,770
‫ini di sini

78
00:03:46,770 --> 00:03:48,740
‫sebagai variabel konfigurasi, dan variabel lingkungan

79
00:03:48,740 --> 00:03:50,440
‫yang dapat kita ubah dengan

80
00:03:50,440 --> 00:03:54,073
‫sangat mudah dengan memanipulasi konfigurasi. berkas env.

81
00:03:55,774 --> 00:03:56,607
‫Baiklah?

82
00:03:57,940 --> 00:04:00,100
‫Jadi, sebut saja ini EMAIL_FROM.

83
00:04:02,490 --> 00:04:06,530
‫Dan kemudian kami hanya menginginkan alamat email itu sendiri.

84
00:04:06,530 --> 00:04:07,363
‫Baiklah?

85
00:04:08,560 --> 00:04:10,840
‫Jadi kasus lain di mana sangat membantu

86
00:04:10,840 --> 00:04:12,353
‫untuk menggunakan variabel lingkungan.

87
00:04:13,260 --> 00:04:15,360
‫Dan sekarang mari kita buat ini menjadi string template.

88
00:04:18,400 --> 00:04:20,840
‫Dan tentu saja pasang itu di sini.

89
00:04:20,840 --> 00:04:23,153
‫Jadi itu proses. lingkungan EMAIL_FROM.

90
00:04:28,540 --> 00:04:30,930
‫Selanjutnya, mari kita buat metode di

91
00:04:30,930 --> 00:04:33,230
‫sini untuk membuat transport.

92
00:04:33,230 --> 00:04:35,563
‫Jadi mirip dengan apa yang kita miliki di sini.

93
00:04:37,640 --> 00:04:39,347
‫Jadi buatTransport.

94
00:04:43,450 --> 00:04:46,280
‫Dan sekarang di sini kami sebenarnya ingin memiliki transportasi

95
00:04:46,280 --> 00:04:48,890
‫yang berbeda apakah kami sedang berproduksi atau tidak.

96
00:04:48,890 --> 00:04:50,170
‫Jadi ketika kita

97
00:04:50,170 --> 00:04:52,470
‫dalam produksi, kita sebenarnya ingin mengirim

98
00:04:52,470 --> 00:04:55,540
‫email yang sebenarnya, dan kita akan melakukannya nanti menggunakan

99
00:04:55,540 --> 00:04:57,890
‫SendGrid, tetapi jika kita tidak dalam produksi

100
00:04:57,890 --> 00:05:00,730
‫maka kita masih ingin menggunakan aplikasi Mailtrap kita seperti

101
00:05:00,730 --> 00:05:03,270
‫yang kita lakukan sebelumnya ketika kami mengirim email.

102
00:05:03,270 --> 00:05:07,020
‫Jadi, alih-alih email masuk ke alamat email asli, email tersebut

103
00:05:07,020 --> 00:05:10,730
‫akan masuk ke kotak masuk Mailtrap kami sehingga kami

104
00:05:10,730 --> 00:05:12,260
‫dapat benar-benar melihatnya

105
00:05:12,260 --> 00:05:13,843
‫dalam proses pengembangan kami.

106
00:05:14,950 --> 00:05:18,343
‫Jadi transporter itu akan persis sama dengan yang ini, jadi mari kita

107
00:05:19,870 --> 00:05:25,277
‫salin tetapi pertama-tama katakanlah if(process.

108
00:05:25,277 --> 00:05:25,277
‫lingkungan NODE_ENV).

109
00:05:30,360 --> 00:05:32,360
‫Jadi, ingat, begitulah cara kami memeriksa apakah

110
00:05:32,360 --> 00:05:34,110
‫kami sedang berproduksi atau tidak.

111
00:05:36,390 --> 00:05:38,230
‫Jadi jika itu sedang dalam

112
00:05:38,230 --> 00:05:39,620
‫produksi, dan jika

113
00:05:39,620 --> 00:05:43,830
‫kita sedang dalam produksi, maka kita ingin membuat transporter untuk SendGrid.

114
00:05:43,830 --> 00:05:45,890
‫Jadi mari kita taruh itu di sini, dan

115
00:05:45,890 --> 00:05:47,613
‫sekali lagi kita akan melakukannya nanti.

116
00:05:49,170 --> 00:05:51,410
‫Untuk saat ini mari kita kembalikan sesuatu dari sini.

117
00:05:51,410 --> 00:05:53,133
‫Tidak masalah, katakanlah satu.

118
00:05:54,680 --> 00:05:55,513
‫Baiklah?

119
00:05:56,750 --> 00:05:58,840
‫Dan pada dasarnya jika tidak, kami

120
00:05:58,840 --> 00:06:02,493
‫ingin mengembalikan nodemailer ini. buatTransportasi.

121
00:06:05,166 --> 00:06:05,999
‫Oke?

122
00:06:05,999 --> 00:06:06,840
‫Jadi Transport

123
00:06:06,840 --> 00:06:11,293
‫ini di sini pada dasarnya akan mengembalikan transport nodemailer baru seperti ini.

124
00:06:12,280 --> 00:06:14,660
‫Atau, sebaliknya ketika kita sedang

125
00:06:14,660 --> 00:06:17,333
‫berproduksi, maka yang akan ada di sini.

126
00:06:18,500 --> 00:06:19,333
‫Oke?

127
00:06:19,333 --> 00:06:21,020
‫Jadi mari kita benar-benar menghapusnya dari sini.

128
00:06:23,930 --> 00:06:26,773
‫Juga, kami ingin menghapus yang ini.

129
00:06:32,970 --> 00:06:35,480
‫Dan sekarang mari kita buat metode send.

130
00:06:35,480 --> 00:06:37,520
‫Jadi ini akan menjadi metode

131
00:06:37,520 --> 00:06:39,610
‫yang akan melakukan pengiriman yang sebenarnya.

132
00:06:39,610 --> 00:06:40,443
‫Oke?

133
00:06:40,443 --> 00:06:43,650
‫Dan yang ini akan menerima template dan subjek.

134
00:06:43,650 --> 00:06:45,150
‫Dan Anda akan mengerti

135
00:06:45,150 --> 00:06:48,003
‫sedikit lebih baik mengapa begitu seluruh kelas ini selesai.

136
00:06:49,270 --> 00:06:50,103
‫Oke?

137
00:06:51,550 --> 00:06:53,513
‫Jadi template dan subjek.

138
00:06:56,050 --> 00:06:58,553
‫Jadi mari kita beri komentar di sini tentang apa yang akan dilakukan ini.

139
00:07:01,170 --> 00:07:03,600
‫Dan sekarang sebelum kita benar-benar menulis fungsi ini, izinkan

140
00:07:03,600 --> 00:07:05,690
‫saya menunjukkan kepada Anda bagaimana kita

141
00:07:05,690 --> 00:07:08,753
‫akan menggunakannya, dan mengapa kita membutuhkan template dan subjek di sini.

142
00:07:10,890 --> 00:07:12,893
‫Jadi, ingat bagaimana kami

143
00:07:12,893 --> 00:07:16,890
‫mengatakan di sini bahwa kami akan memiliki satu metode

144
00:07:16,890 --> 00:07:21,890
‫yang disebut sendWelcome, dan juga seperti metode untuk mengirim email reset password.

145
00:07:21,900 --> 00:07:26,353
‫Jadi, sekarang mari kita tambahkan itu di sini, jadi sendWelcome.

146
00:07:28,460 --> 00:07:31,430
‫Dan yang ini tidak menerima argumen apa pun

147
00:07:31,430 --> 00:07:34,410
‫dan yang dilakukannya hanyalah memanggil kirim dengan templat

148
00:07:35,470 --> 00:07:37,030
‫dan subjek yang

149
00:07:37,030 --> 00:07:38,690
‫kita inginkan untuk email ini.

150
00:07:38,690 --> 00:07:39,523
‫Oke?

151
00:07:39,523 --> 00:07:41,800
‫Dan sekali lagi, ini membuatnya sangat mudah untuk

152
00:07:41,800 --> 00:07:43,370
‫kemudian membuat email yang

153
00:07:43,370 --> 00:07:45,480
‫berbeda untuk semua jenis situasi yang berbeda.

154
00:07:45,480 --> 00:07:46,550
‫Oke?

155
00:07:46,550 --> 00:07:49,297
‫Jadi kami memiliki fungsi pengiriman satu rute ini

156
00:07:49,297 --> 00:07:51,790
‫di sini dan kemudian semua yang lebih

157
00:07:51,790 --> 00:07:55,100
‫spesifik ini, yang kemudian akan memanggil fungsi pengiriman router

158
00:07:55,100 --> 00:07:57,150
‫yang melakukan pekerjaan sebenarnya.

159
00:07:57,150 --> 00:07:58,500
‫Oke?

160
00:07:58,500 --> 00:08:01,950
‫Dan sebenarnya ini dia. send karena tentu

161
00:08:01,950 --> 00:08:03,970
‫saja metode ini di sini,

162
00:08:03,970 --> 00:08:06,600
‫mereka akan didefinisikan pada objek saat ini.

163
00:08:06,600 --> 00:08:07,643
‫Dan jadi itulah ini.

164
00:08:09,530 --> 00:08:12,113
‫Kemudian di sini kita paste di nama template.

165
00:08:14,280 --> 00:08:16,630
‫Dan nama template yang saya taruh di

166
00:08:16,630 --> 00:08:19,020
‫sini, nantinya akan menjadi template pug yang

167
00:08:19,020 --> 00:08:20,280
‫akan kita buat.

168
00:08:20,280 --> 00:08:22,320
‫Jadi, sebenarnya di kuliah berikutnya, kita

169
00:08:22,320 --> 00:08:24,600
‫akan membuat template pug ini untuk

170
00:08:24,600 --> 00:08:26,523
‫mengirim email selamat datang.

171
00:08:27,710 --> 00:08:28,543
‫Oke?

172
00:08:28,543 --> 00:08:29,763
‫Dan kemudian hanya baris subjek.

173
00:08:31,250 --> 00:08:35,320
‫Katakanlah 'Selamat datang di Keluarga Natours! ' Jadi, seperti

174
00:08:37,550 --> 00:08:40,920
‫ini, kami tidak perlu khawatir tentang detail

175
00:08:40,920 --> 00:08:43,210
‫implementasi apa pun saat

176
00:08:43,210 --> 00:08:45,260
‫kami benar-benar mengirim email.

177
00:08:45,260 --> 00:08:47,290
‫Jadi misalnya di titik kode

178
00:08:47,290 --> 00:08:49,510
‫kita di mana kita ingin mengirim

179
00:08:49,510 --> 00:08:51,900
‫email selamat datang kita tidak perlu khawatir

180
00:08:51,900 --> 00:08:54,130
‫tentang nama template atau tentang baris subjek.

181
00:08:54,130 --> 00:08:57,130
‫Yang akan kita lakukan hanyalah mengatakan kirim email selamat datang

182
00:08:57,130 --> 00:08:58,260
‫dan hanya itu.

183
00:08:58,260 --> 00:09:00,380
‫Dan kemudian

184
00:09:00,380 --> 00:09:03,563
‫kelas kami akan menangani implementasinya.

185
00:09:04,880 --> 00:09:05,780
‫Baiklah?

186
00:09:05,780 --> 00:09:09,023
‫Bagaimanapun, sekarang mari kita membangun fungsi send ini.

187
00:09:10,180 --> 00:09:14,560
‫Jadi, apa yang akan kita lakukan dalam

188
00:09:14,560 --> 00:09:19,560
‫fungsi ini, pertama-tama adalah membuat HTML untuk email berdasarkan

189
00:09:20,820 --> 00:09:22,663
‫template pug.

190
00:09:25,650 --> 00:09:27,550
‫Jadi pada dasarnya yang

191
00:09:27,550 --> 00:09:29,823
‫kita tempelkan di sini dengan template.

192
00:09:31,750 --> 00:09:34,533
‫Kemudian, tentukan opsi email, dan sekali

193
00:09:36,570 --> 00:09:40,883
‫lagi akan sangat mirip dengan yang ini, dan sebenarnya biarkan

194
00:09:41,750 --> 00:09:43,530
‫saya melanjutkan dan

195
00:09:43,530 --> 00:09:46,453
‫memotongnya dari sini dan menempelkannya di sini.

196
00:09:48,130 --> 00:09:49,000
‫Oke?

197
00:09:49,000 --> 00:09:51,600
‫Tentu saja tidak akan sama persis, tetapi

198
00:09:51,600 --> 00:09:53,573
‫kita akan meninggalkannya sebentar lagi.

199
00:09:54,500 --> 00:09:55,333
‫Baiklah?

200
00:09:55,333 --> 00:09:56,323
‫Dan

201
00:09:58,690 --> 00:10:01,423
‫akhirnya, Buat transportasi dan kirim email.

202
00:10:06,930 --> 00:10:07,880
‫Oke?

203
00:10:07,880 --> 00:10:10,530
‫Dan begitulah, saya akan meninggalkan yang itu untuk nanti juga.

204
00:10:13,120 --> 00:10:15,440
‫Jadi, dimulai dengan poin nomor satu.

205
00:10:15,440 --> 00:10:18,670
‫Dan biasanya sampai saat ini, kita hanya menggunakan

206
00:10:18,670 --> 00:10:20,160
‫pug untuk membuat

207
00:10:20,160 --> 00:10:22,370
‫template, dan kemudian kita meneruskan nama

208
00:10:22,370 --> 00:10:24,780
‫template ke fungsi render pada respon.

209
00:10:24,780 --> 00:10:25,870
‫Benar.

210
00:10:25,870 --> 00:10:27,820
‫Jadi kami selalu menggunakannya seperti

211
00:10:29,890 --> 00:10:31,723
‫res ini. render,

212
00:10:31,723 --> 00:10:33,630
‫lalu di sini nama templatenya.

213
00:10:33,630 --> 00:10:34,810
‫Benar?

214
00:10:34,810 --> 00:10:37,370
‫Dan fungsi render ini di balik

215
00:10:37,370 --> 00:10:41,200
‫layar pada dasarnya adalah membuat HTML berdasarkan template pug

216
00:10:41,200 --> 00:10:43,450
‫dan kemudian mengirimkannya ke klien.

217
00:10:43,450 --> 00:10:46,840
‫Sekarang dalam hal ini kita tidak benar-benar ingin

218
00:10:46,840 --> 00:10:50,400
‫merender, yang ingin kita lakukan pada dasarnya adalah membuat

219
00:10:50,400 --> 00:10:53,960
‫HTML dari template sehingga kita dapat mengirim HTML itu

220
00:10:53,960 --> 00:10:55,110
‫sebagai email.

221
00:10:55,110 --> 00:10:58,520
‫Jadi pada dasarnya mendefinisikannya di sini sebagai opsi HTML ke

222
00:10:58,520 --> 00:11:00,070
‫dalam opsi email ini.

223
00:11:00,070 --> 00:11:00,960
‫Oke?

224
00:11:00,960 --> 00:11:04,900
‫Jadi, ingat bagaimana kita bisa menentukan teks dan HTML.

225
00:11:04,900 --> 00:11:08,790
‫Dan terutama kami tertarik untuk mengirim email HTML.

226
00:11:08,790 --> 00:11:11,340
‫Dan itulah mengapa kita akan memiliki template pug

227
00:11:11,340 --> 00:11:13,843
‫dari mana kita akan menghasilkan HTML ini.

228
00:11:15,130 --> 00:11:16,120
‫Oke?

229
00:11:16,120 --> 00:11:18,720
‫Jadi itu tidak akan bekerja seperti ini,

230
00:11:18,720 --> 00:11:20,770
‫tetapi sebaliknya kita benar-benar membutuhkan paket

231
00:11:20,770 --> 00:11:22,173
‫pug di sini.

232
00:11:24,560 --> 00:11:25,443
‫Jadi,

233
00:11:27,200 --> 00:11:28,780
‫pug seperti ini, dan

234
00:11:28,780 --> 00:11:32,600
‫kemudian kita perlu menggunakan pug.

235
00:11:32,600 --> 00:11:32,600
‫renderFile.

236
00:11:36,890 --> 00:11:37,723
‫Oke?

237
00:11:37,723 --> 00:11:39,490
‫Jadi ini akan mengambil

238
00:11:39,490 --> 00:11:42,450
‫file dan kemudian membuat kode pug menjadi HTML asli.

239
00:11:42,450 --> 00:11:43,283
‫Oke?

240
00:11:43,283 --> 00:11:48,120
‫Dan agar selanjutnya bisa kita simpan ke dalam variabel HTML.

241
00:11:48,120 --> 00:11:48,953
‫Baiklah?

242
00:11:49,870 --> 00:11:52,330
‫Jadi, di mana file itu?

243
00:11:52,330 --> 00:11:55,173
‫Nah, itu di dirname, jadi nama

244
00:11:56,460 --> 00:11:58,500
‫D-I-R, yang diingat adalah

245
00:11:58,500 --> 00:12:00,120
‫lokasi skrip

246
00:12:00,120 --> 00:12:01,960
‫yang sedang berjalan,

247
00:12:01,960 --> 00:12:05,133
‫dan begitulah, sekarang, di folder utilitas ini.

248
00:12:06,570 --> 00:12:07,403
‫Oke?

249
00:12:07,403 --> 00:12:10,223
‫Jadi dari sana kita perlu naik satu langkah, lalu

250
00:12:12,010 --> 00:12:16,000
‫masuk ke tampilan, dan dari sana masuk ke folder email yang juga akan

251
00:12:16,860 --> 00:12:18,950
‫kita buat dalam hitungan detik.

252
00:12:18,950 --> 00:12:19,783
‫Dan kemudian

253
00:12:19,783 --> 00:12:22,103
‫di sanalah kita akan memiliki file template.

254
00:12:23,450 --> 00:12:28,650
‫Jadi templat}.

255
00:12:28,650 --> 00:12:28,650
‫pesek

256
00:12:28,650 --> 00:12:32,340
‫Jadi untuk email selamat datang, template ini akan

257
00:12:32,340 --> 00:12:34,180
‫disebut selamat datang.

258
00:12:34,180 --> 00:12:38,920
‫Jadi sekarang mari kita benar-benar membuatnya di sini di tampilan, buat folder

259
00:12:38,920 --> 00:12:40,293
‫baru, email, dan

260
00:12:42,910 --> 00:12:45,623
‫kemudian di sana file baru, selamat

261
00:12:47,730 --> 00:12:48,677
‫datang. pesek

262
00:12:49,784 --> 00:12:50,660
‫Oke?

263
00:12:50,660 --> 00:12:52,860
‫Dan kami tidak akan benar-benar membuat template

264
00:12:52,860 --> 00:12:56,130
‫ini dalam video ini, tetapi saya hanya ingin menunjukkan kepada

265
00:12:56,130 --> 00:12:58,320
‫Anda bagaimana semua ini akan bekerja.

266
00:12:58,320 --> 00:12:59,153
‫Oke?

267
00:12:59,153 --> 00:13:01,750
‫Jadi sambutan ini akan ditempelkan di sini

268
00:13:01,750 --> 00:13:06,060
‫ke dalam template dan kemudian akan mengambil file itu dari folder views.

269
00:13:06,060 --> 00:13:06,893
‫Benar?

270
00:13:06,893 --> 00:13:08,710
‫Jadi, itu adalah langkah pertama.

271
00:13:08,710 --> 00:13:11,043
‫Selanjutnya, mari kita tentukan opsi email.

272
00:13:11,980 --> 00:13:16,980
‫Jadi, dari sekarang ini. dari.

273
00:13:17,110 --> 00:13:17,943
‫Ingat?

274
00:13:19,060 --> 00:13:20,183
‫Jadi di sini.

275
00:13:21,820 --> 00:13:23,710
‫Selanjutnya,

276
00:13:26,130 --> 00:13:30,200
‫kita memiliki ini. to, dan kami juga memiliki

277
00:13:30,200 --> 00:13:34,230
‫subjek yang sama dengan subjek yang datang di sini, jadi, yah,

278
00:13:34,230 --> 00:13:37,700
‫sebenarnya kami bahkan tidak perlu mendefinisikan yang ini dan

279
00:13:39,550 --> 00:13:41,383
‫kami memiliki HTML kami.

280
00:13:42,590 --> 00:13:45,670
‫Jadi seperti ini, atau tentu saja,

281
00:13:45,670 --> 00:13:49,213
‫itu bahkan tidak perlu karena namanya sama.

282
00:13:51,760 --> 00:13:55,427
‫Sekarang, selanjutnya, kami juga ingin memasukkan versi teks dari

283
00:13:55,427 --> 00:13:57,960
‫email kami ke dalam email.

284
00:13:57,960 --> 00:13:58,793
‫Oke?

285
00:13:58,793 --> 00:14:01,750
‫Dan itu sebenarnya sangat penting karena lebih

286
00:14:01,750 --> 00:14:05,560
‫baik untuk tingkat pengiriman email dan juga untuk folder spam.

287
00:14:05,560 --> 00:14:06,670
‫Baiklah?

288
00:14:06,670 --> 00:14:11,130
‫Dan juga beberapa orang lebih suka email teks sederhana

289
00:14:11,130 --> 00:14:14,970
‫daripada email HTML yang lebih berformat.

290
00:14:14,970 --> 00:14:15,900
‫Baiklah?

291
00:14:15,900 --> 00:14:18,830
‫Jadi pada dasarnya, kita membutuhkan cara untuk

292
00:14:18,830 --> 00:14:21,560
‫mengubah semua HTML menjadi teks sederhana.

293
00:14:21,560 --> 00:14:25,760
‫Jadi menghapus semua HTML hanya menyisakan konten.

294
00:14:25,760 --> 00:14:27,980
‫Dan untuk melakukan itu,

295
00:14:27,980 --> 00:14:29,193
‫kita

296
00:14:31,640 --> 00:14:36,640
‫akan menginstal paket lain, dan yang ini disebut html-to-text.

297
00:14:40,640 --> 00:14:41,810
‫Baiklah?

298
00:14:41,810 --> 00:14:43,133
‫Mari kita sertakan itu di

299
00:14:46,161 --> 00:14:46,994
‫sini, ToText.

300
00:14:50,520 --> 00:14:54,103
‫membutuhkan('html-ke-teks'), seperti ini.

301
00:14:56,150 --> 00:14:57,560
‫Oke?

302
00:14:57,560 --> 00:15:00,973
‫Sekarang mari kita gunakan itu untuk mengonversi HTML kita.

303
00:15:03,260 --> 00:15:07,080
‫Jadi kami menggunakan htmlToText. fromString dan kemudian

304
00:15:09,877 --> 00:15:12,340
‫string itu disimpan dalam HTML.

305
00:15:13,300 --> 00:15:14,133
‫Benar?

306
00:15:15,620 --> 00:15:18,230
‫Jadi, ini adalah opsi email kami, Dan

307
00:15:18,230 --> 00:15:21,160
‫sebenarnya saya lupa sesuatu yang sangat, sangat penting, di

308
00:15:21,160 --> 00:15:24,130
‫langkah pertama ini, jadi dalam file render ini, karena

309
00:15:24,130 --> 00:15:27,200
‫sama seperti dengan respons. render, kita juga

310
00:15:27,200 --> 00:15:30,010
‫bisa menempelkan data ke file render.

311
00:15:30,010 --> 00:15:32,160
‫Dan tentunya itu sangat penting

312
00:15:32,160 --> 00:15:35,390
‫jika kita ingin benar-benar melakukan personalisasi atau email

313
00:15:35,390 --> 00:15:38,283
‫dengan nama dan juga paste di URL.

314
00:15:39,580 --> 00:15:42,590
‫Jadi mari kita lakukan seperti yang biasa kita lakukan

315
00:15:42,590 --> 00:15:44,053
‫di fungsi render.

316
00:15:46,290 --> 00:15:51,290
‫Jadi itu firstName, kirimkan ke ini. firstName, dan URL-nya

317
00:15:53,733 --> 00:15:58,733
‫adalah ini. url, dan juga mari kita tempel

318
00:15:58,910 --> 00:16:01,300
‫di subjek dan Anda akan melihat

319
00:16:02,260 --> 00:16:04,623
‫nanti mengapa kita membutuhkannya.

320
00:16:06,690 --> 00:16:08,300
‫Oke?

321
00:16:08,300 --> 00:16:11,210
‫Jadi, sekarang mari kita akhirnya membuat transport

322
00:16:11,210 --> 00:16:13,680
‫menggunakan fungsi create transport kita,

323
00:16:13,680 --> 00:16:15,940
‫dan kemudian mengirim email.

324
00:16:15,940 --> 00:16:20,867
‫Jadi, cukup adil, itu saja. buatTransportasi.

325
00:16:23,670 --> 00:16:28,670
‫Jadi, ingat bahwa ini hanya metode ini di sini, yang ini, dan memiliki

326
00:16:29,200 --> 00:16:30,960
‫nama yang sama persis

327
00:16:30,960 --> 00:16:33,980
‫dengan fungsi ini yang berasal dari nodemailer.

328
00:16:33,980 --> 00:16:35,450
‫Jadi itu agak

329
00:16:35,450 --> 00:16:38,583
‫membingungkan, jadi sebut saja newTransport di sini.

330
00:16:40,380 --> 00:16:43,847
‫Oke, jadi ini juga newTransport, jadi

331
00:16:45,370 --> 00:16:47,520
‫agak kurang membingungkan.

332
00:16:47,520 --> 00:16:48,500
‫Baiklah?

333
00:16:48,500 --> 00:16:50,783
‫Sekarang mari kita ingat bagaimana kita melakukannya di sini sebelumnya.

334
00:16:51,620 --> 00:16:53,330
‫Jadi kami memiliki

335
00:16:53,330 --> 00:16:55,700
‫transporter kami, yang kami buat secara

336
00:16:55,700 --> 00:17:00,360
‫terpisah dalam kasus ini, dan kemudian kami merantai sendMail dengan opsi.

337
00:17:00,360 --> 00:17:04,373
‫Jadi mari kita ambil itu di sini, hapus semua kode yang tersisa.

338
00:17:07,220 --> 00:17:09,320
‫Jadi pada dasarnya letakkan di sini sebagai referensi.

339
00:17:10,280 --> 00:17:11,130
‫Oke?

340
00:17:11,130 --> 00:17:13,123
‫Jadi transporter ini sekarang ini.

341
00:17:16,470 --> 00:17:17,700
‫Baiklah?

342
00:17:17,700 --> 00:17:21,170
‫Dan selanjutnya, kami berantai mengirim email dan kemudian dengan

343
00:17:21,170 --> 00:17:23,993
‫opsi email yang kami definisikan di sini.

344
00:17:25,010 --> 00:17:27,040
‫Kemudian, kita perlu menunggu semua

345
00:17:27,040 --> 00:17:30,220
‫ini, karena, tentu saja, ini adalah fungsi asinkron.

346
00:17:30,220 --> 00:17:33,043
‫Jadi sekarang mari kita tandai yang ini di sini sebagai async.

347
00:17:34,880 --> 00:17:35,730
‫Oke?

348
00:17:35,730 --> 00:17:40,083
‫Jadi sekarang, kita juga perlu menunggu fungsinya di sini.

349
00:17:41,490 --> 00:17:42,323
‫Baiklah?

350
00:17:42,323 --> 00:17:46,120
‫Karena ini. send sekarang memang merupakan fungsi async.

351
00:17:46,120 --> 00:17:49,800
‫Jadi di sini kami menunggu agar fungsi ini hanya kembali

352
00:17:49,800 --> 00:17:52,000
‫segera setelah email benar-benar dikirim.

353
00:17:53,120 --> 00:17:56,533
‫Jadi, tentu saja, tandai ini sebagai async juga.

354
00:17:58,130 --> 00:17:59,380
‫Luar biasa.

355
00:17:59,380 --> 00:18:02,920
‫Itu sebenarnya untuk kelas ini.

356
00:18:02,920 --> 00:18:05,523
‫Jadi kita tidak lagi membutuhkan contoh ini.

357
00:18:06,450 --> 00:18:07,283
‫Oke?

358
00:18:07,283 --> 00:18:09,740
‫Jadi di video berikutnya, kita akan benar-benar

359
00:18:09,740 --> 00:18:13,570
‫melanjutkan dan menggunakan kelas baru ini untuk mengirim email selamat datang.

360
00:18:13,570 --> 00:18:16,570
‫Jadi, cepat rekap apa yang kami lakukan di sini.

361
00:18:16,570 --> 00:18:18,600
‫Jadi kami membuat kelas email baru

362
00:18:18,600 --> 00:18:20,730
‫dari mana kami dapat membuat objek email

363
00:18:20,730 --> 00:18:23,610
‫yang kemudian dapat kami gunakan untuk mengirim email yang sebenarnya.

364
00:18:23,610 --> 00:18:28,010
‫Dan untuk membuat objek email baru, kita akan menempelkan pengguna dan

365
00:18:28,010 --> 00:18:31,330
‫juga URL yang kita inginkan di email tersebut.

366
00:18:31,330 --> 00:18:35,160
‫Jadi di sini kami menetapkan semua hal itu ke objek

367
00:18:35,160 --> 00:18:37,940
‫saat ini, dan juga beberapa pengaturan

368
00:18:37,940 --> 00:18:41,890
‫lain yang ingin kami sediakan, seperti nama depan dan email pengirim.

369
00:18:41,890 --> 00:18:44,000
‫Jadi pada dasarnya untuk mengabstraksikan informasi

370
00:18:44,000 --> 00:18:45,990
‫ini dari fungsi send,

371
00:18:45,990 --> 00:18:48,550
‫dan memiliki semuanya di satu tempat terpusat.

372
00:18:48,550 --> 00:18:51,360
‫Kemudian kami memiliki fungsi transportasi baru yang

373
00:18:51,360 --> 00:18:54,290
‫membuatnya sangat mudah untuk membuat transportasi yang berbeda

374
00:18:54,290 --> 00:18:55,940
‫untuk lingkungan yang berbeda.

375
00:18:55,940 --> 00:18:58,500
‫Dan sekali lagi, mengabstraksikan logika itu

376
00:18:58,500 --> 00:19:00,770
‫dari fungsi kirim yang

377
00:19:00,770 --> 00:19:04,093
‫sebenarnya yang seharusnya hanya berkaitan dengan pengiriman email.

378
00:19:05,120 --> 00:19:05,953
‫Oke?

379
00:19:05,953 --> 00:19:09,500
‫Jadi inilah fungsi send yang mengambil template dan

380
00:19:09,500 --> 00:19:14,240
‫subjek, dan berdasarkan itu ia membuat HTML dari template pug

381
00:19:14,240 --> 00:19:17,370
‫yang kemudian akan diatur ke dalam

382
00:19:17,370 --> 00:19:19,830
‫opsi email, yang akan, di

383
00:19:19,830 --> 00:19:23,150
‫akhir fungsi, lalu akhirnya dikirim dalam baris

384
00:19:23,150 --> 00:19:24,470
‫kode ini.

385
00:19:24,470 --> 00:19:25,390
‫Oke?

386
00:19:25,390 --> 00:19:27,880
‫Tapi itu tidak akan menjadi fungsi kirim yang

387
00:19:27,880 --> 00:19:29,950
‫akan kita gunakan dalam kode kita.

388
00:19:29,950 --> 00:19:31,840
‫Jadi sebagai gantinya, kita akan membuat

389
00:19:31,840 --> 00:19:34,183
‫satu fungsi berbeda untuk setiap jenis email yang

390
00:19:34,183 --> 00:19:35,417
‫ingin kita kirim.

391
00:19:35,417 --> 00:19:39,380
‫Dan yang pertama saya buat di sini adalah sendWelcome.

392
00:19:39,380 --> 00:19:40,213
‫Baiklah?

393
00:19:40,213 --> 00:19:43,440
‫Jadi untuk sendWelcome, pada dasarnya kita mengatur

394
00:19:43,440 --> 00:19:45,420
‫nama template sebagai

395
00:19:45,420 --> 00:19:48,480
‫selamat datang, dan subjek sebagai string ini.

396
00:19:48,480 --> 00:19:49,313
‫Oke?

397
00:19:49,313 --> 00:19:52,723
‫Jadi, saya harap itu masuk akal, dan saya melihat Anda sebentar lagi.

