const http = require('http')
const path = require('path')
const fs = require('fs')
const server = http.createServer((req, res) => {
const pathFile = path.join(__dirname, req.url === '/' ? 'index.html' : req.url);
const extName = path.extname(pathFile);
let contentType = 'text/html';
switch (extName) {
case '.js':
contentType = 'text/javascript';
break;
case '.json':
contentType = 'application/json';
break;
case '.css':
contentType = 'text/css';
break;
case '.png':
contentType = 'image/png';
break;
}
fs.readFile(pathFile, (err, data) => {
if (err) {
if (err.code == 'ENOENT') {
fs.readFile(path.join(__dirname, '404.html'), (err, data) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(data, 'utf8');
});
} else {
res.writeHead(500);
res.end(`Server Error: ${err.code}`);
}
} else {
res.writeHead(200, { 'Content-Type': contentType });
res.end(data, 'utf8');
}
});
});
const PORT = process.env.PORT || 8080;
server.listen(PORT, () => console.log(`The server is running on port ${PORT}`));
/*
run:
The server is running on port 8080
On http://localhost:8080/worker.js
class Worker {
constructor(name, age) {
this.name = name;
this.age = age;
}
show() {
console.log(`name = ${this.name} age = ${this.age}`);
}
}
module.exports = Worker;
On http://localhost:8080
Home Page
On http://localhost:8080/abc
404 Not Found Example HTML Page
On http://localhost:8080/package.json
{
"name": "javascript_node",
"version": "1.0.0",
"description": "Node",
...
}
*/