Skip to content

Commit 237070e

Browse files
committed
menggunakan librari tambahan nanoid utk generate id unik
1 parent 25b5493 commit 237070e

File tree

1 file changed

+76
-1
lines changed

1 file changed

+76
-1
lines changed

18c-simpancatatan.js

+76-1
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,79 @@
5151
// masih ingatkan bahwa fungsi handler pada Hapi memiliki 2 parameter.
5252
// jangan lupa menambahkan parameter tsb setiap kali membuat fungsi handler
5353
// lalu kita eksport fungsi handler ini , kita gunakan objek literas dg tujuan utk memudahkan eksport lebih dari 1 nilai pada
54-
// berkas JS
54+
// berkas JS
55+
/**
56+
* const addNoteHandler = (request, h) => {
57+
*
58+
* };
59+
* module.exports = {addNoteHandler};
60+
*/
61+
62+
// selanjutnya adalah tuliskan logika utk simpan catatan dari client ke dalam array notes
63+
// client kirim data catatan (title, tags, body) dan disimpan dalam bentuk JSON lewat body request
64+
// kita perlu mendapatkan body request dari Hapi menggunakan properti request.payload utk mengambil data
65+
/**
66+
* const addNoteHandler = (request, h)=>{
67+
* const {title, tags, body} = request.payload;
68+
* } ;
69+
*/
70+
71+
// selain itu, objek notes yang perlu kita simpan harus memiliki struktur seperti ini
72+
/**
73+
* {
74+
* id: string,
75+
* title: string,
76+
*
77+
* createdAt : string,
78+
* updatedAt: string,
79+
* tags: array of string,
80+
* body: string,
81+
* },
82+
*/
83+
// kita hanya mendapatkan nilai title, tags, body dari client, itu berarti sisanya kita perlu olah sendiri
84+
// mari kita pikirkan dari properti id terlebih dulu
85+
// kriteria menyebutkan, properti id merupakan string dan unik, sehingga perlu menggunakan bantuan library pihak ke-3
86+
// nanoid merupakan library yg populer utk menangani hal ini. silahkan pasang library dng perintah
87+
/**
88+
* npm instal [email protected]
89+
*/
90+
// nb: gunakan versi 3.x.x karena versi terbaru tidak kompatibel dg format module CommonJS
91+
92+
//lalu, panggil metod nanoid() dan memberikan parameter number yang merpakan ukuran dr stringnya
93+
94+
/**
95+
* const addNoteHandler = (request,h) => {
96+
* const {title, tags, body} = request.payload;
97+
* const id = nanoid(16);
98+
* }
99+
*/
100+
// jgn lupa import nanoid dar packagenya
101+
102+
/**
103+
* const {nanoid} = require('nanoid');
104+
* const addNoteHandler = (request, h)=>{
105+
*
106+
* const {title, tags, body} = request.payload;
107+
*
108+
* const id = nanoid(16);
109+
* }
110+
*/
111+
112+
// sekarang kamu sudah memiliki nilai properti id
113+
114+
// selanjutnya adalah properti createdAt dan updatedAt,
115+
// karena kasus sekarang adalah menambah catatan baru, maka nilai kedua properti tsb harusnya sama.
116+
// jadi bisa secara mudah memberikan nilai new Date().toISOString();
117+
/**
118+
* const addNoteHandler = (request, h)=> {
119+
* const {title,tags, body}= request.payload;
120+
*
121+
* const id = nanoid(16);
122+
* const createdAt = new Date ().toISOString();
123+
* const updatedAt = creadetAt;
124+
* }
125+
*/
126+
127+
// kita sudah punya properti dari objek catatan secara lengkap
128+
// sekarang saatnya kita masukkin nilai tsb ke dalam array ntes pake metod push()
129+

0 commit comments

Comments
 (0)