The folder like it
|____public
| |____index.html
| |____index.js
|____server.js
and node server.js
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Document</title> | |
| <script src="./index.js"></script> | |
| </head> | |
| <body> | |
| <img id="img" height="300px" src="https://avatars3.githubusercontent.com/u/6913898?v=4&s=460" alt="basketry"> | |
| </body> | |
| </html> |
| console.log('hello'); |
| const http = require('http'); | |
| const path = require('path'); | |
| const fs = require('fs'); | |
| const public = path.resolve(__dirname, './public'); | |
| http | |
| .createServer((req, res) => { | |
| let filePath = path.resolve(public, req.url.slice(1)); | |
| let rs = fs.createReadStream(filePath); | |
| rs && | |
| rs.on('error', e => { | |
| if (e.code === 'ENOENT') { | |
| res.end('404 Not Found'); | |
| } | |
| }); | |
| if (path.extname(filePath) == '.js') { | |
| // after 2s | |
| setTimeout(() => { | |
| rs.pipe(res); | |
| }, 2000); | |
| } else { | |
| rs.pipe(res); | |
| } | |
| }) | |
| .listen(3018, () => { | |
| console.log('At 3018'); | |
| }); |