-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path16h-response-status.js
executable file
·80 lines (69 loc) · 2.83 KB
/
16h-response-status.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// --- response status
// merupakan salah satu bagian dari respon yng berisikan tentang informasi apakah sebuah request
// berhasil atau gagal dilakukan
// statust yang diberikan berupa kode dan pesan dari kode tsb dalam bentuk teks(statust message)
// response status dikirim oleh server
// status kode terdiri dari 3 digit dengan ketentuan sbb:
// # 100-199 : informational status
// # 200-299 : succesful responses.
// # 300-399 : redirect
// # 400-499 : client error
// # 500-599 : server eror
// fokus terhadap poin yang sering digunakan adalah 200-299, 400-499, dan 500-599
// lebih lengkap disini : https://developer.mozilla.org/id/docs/Web/HTTP/Status
// pada nodejs, penetapan nilai statust code pada response dilakukan melalui properti response.statusCode
/**
* const requestListener = (request, response)=>{
* // memberitahu client bahwa request resource yang diminta tidak ada
* response.statusCode = 404;
* }
*/
//status kode biasa diikuti dengan status message seperti 200 ok, 400 bad request atau 404 not found
// status message memiliki nilai standar sesuai dengan response code. namun kita bs merubahnya
// gunakan properti response.statusMessage
/**
* const requestListener = (request, response) => {
response.statusCode = 404;
// 404 defaultnya adalah 'not found'
response.statusMessage = 'User is not found';
};
*/
// baiknya tidak mengubah statusMessage dari nilai default bila tidak diperlukan. walaupun hanya sekedar menerjemahkan
// berikut kode response status (letakkan di server.js)
/**
* const requestListener = (request, response) => {
response.setHeader('Content-Type', 'text/html');
const { method, url } = request;
if(url === '/') {
if(method === 'GET') {
response.statusCode = 200;
response.end('<h1>Ini adalah homepage</h1>');
} else {
response.statusCode = 400;
response.end(`<h1>Halaman tidak dapat diakses dengan ${method} request</h1>`);
}
} else if(url === '/about') {
if(method === 'GET') {
response.statusCode = 200;
response.end('<h1>Halo! Ini adalah halaman about</h1>')
} else if(method === 'POST') {
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
});
request.on('end', () => {
body = Buffer.concat(body).toString();
const { name } = JSON.parse(body);
response.statusCode = 200;
response.end(`<h1>Halo, ${name}! Ini adalah halaman about</h1>`);
});
} else {
response.statusCode = 400;
response.end(`<h1>Halaman tidak dapat diakses menggunakan ${method} request</h1>`);
}
} else {
response.statusCode = 404;
response.end('<h1>Halaman tidak ditemukan!</h1>');
}
};
*/