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
| var http = require('http'); var url = require('url'); var items = [];
var server = http.createServer(function (req, res) { switch (req.method) { case 'POST': var item = ''; req.setEncoding('utf-8'); req.on('data', function(chunk) { item +=chunk; }); req.on('end', function() { items.push(item); res.end('OK\n'); }); break; case 'GET': items.forEach(function(element, i) { res.write(i + 1 + ') ' + element + '\n'); }); res.end(); break; case 'DELETE': var path = url.parse(req.url).pathname; var i = parseInt(path.slice(1), 10); if(isNaN(i)) { res.statusCode = 400; res.end('Invalid item id'); } else if (!items[i]) { res.statusCode = 404; res.end('Item not found!'); } else { items.splice(i, 1); res.end('delete success!\n'); } break; case 'PUT': var newItem = ''; var putPath = url.parse(req.url).pathname; var j = parseInt(putPath.slice(1), 10); if(isNaN(j)) { res.statusCode = 400; res.end('Invalid item id'); } else if (!items[j]) { res.statusCode = 404; res.end('item not found!'); } else { req.on('data', function(chunk) { newItem += chunk; }); items[j-1] = newItem; res.end('update success!'); } break; } });
server.listen(3000);
|