Spaces:
Running
Running
| const http = require('http'); | |
| const fs = require('fs'); | |
| const path = require('path'); | |
| const PORT = 8080; | |
| const mimeTypes = { | |
| '.html': 'text/html', | |
| '.js': 'text/javascript', | |
| '.css': 'text/css', | |
| '.json': 'application/json', | |
| '.png': 'image/png', | |
| '.jpg': 'image/jpg', | |
| '.gif': 'image/gif', | |
| '.svg': 'image/svg+xml', | |
| }; | |
| const server = http.createServer((req, res) => { | |
| console.log(`request ${req.url}`); | |
| let filePath = '.' + req.url; | |
| if (filePath === './') { | |
| filePath = './index.html'; | |
| } | |
| const extname = String(path.extname(filePath)).toLowerCase(); | |
| const contentType = mimeTypes[extname] || 'application/octet-stream'; | |
| fs.readFile(filePath, (error, content) => { | |
| if (error) { | |
| if (error.code == 'ENOENT') { | |
| res.writeHead(404); | |
| res.end('404 Not Found'); | |
| } else { | |
| res.writeHead(500); | |
| res.end('Sorry, check with the site admin for error: ' + error.code + ' ..\n'); | |
| } | |
| } else { | |
| res.writeHead(200, { 'Content-Type': contentType }); | |
| res.end(content, 'utf-8'); | |
| } | |
| }); | |
| }); | |
| server.listen(PORT, () => { | |
| console.log(`Server running at http://localhost:${PORT}/`); | |
| }); | |