└── index.js /index.js: -------------------------------------------------------------------------------- 1 | const http = require('http'); 2 | 3 | const PORT = 3000; 4 | 5 | const server = http.createServer(); 6 | 7 | const friends = [ 8 | { 9 | id: 0, 10 | name: 'Nikola Tesla', 11 | }, 12 | { 13 | id: 1, 14 | name: 'Sir Isaac Newton', 15 | }, 16 | { 17 | id: 2, 18 | name: 'Albert Einstein', 19 | } 20 | ]; 21 | 22 | server.on('request', (req, res) => { 23 | const items = req.url.split('/'); 24 | // /friends/2 => ['', 'friends', '2'] 25 | // /friends/ 26 | if (req.method === 'POST' && items[1] === 'friends') { 27 | req.on('data', (data) => { 28 | const friend = data.toString(); 29 | console.log('Request:', friend); 30 | friends.push(JSON.parse(friend)); 31 | }); 32 | req.pipe(res); 33 | } else if (req.method === 'GET' && items[1] === 'friends') { 34 | res.statusCode = 200; 35 | res.setHeader('Content-Type', 'application/json'); 36 | if (items.length === 3) { 37 | const friendIndex = Number(items[2]); 38 | res.end(JSON.stringify(friends[friendIndex])); 39 | } else { 40 | res.end(JSON.stringify(friends)); 41 | } 42 | } else if (req.method === 'GET' && items[1] === 'messages') { 43 | res.setHeader('Content-Type', 'text/html'); 44 | res.write(''); 45 | res.write('
'); 46 | res.write('