const http = require('http') const fs = require('fs') const url = require('url') var res = http.ServerResponse.prototype res.sendFile = function (file) { fs.readFile(file, (err, data) => { if (!err) { console.log("here") this.writeHead(200, { 'content-type': 'text/html; charset=utf-8' }) this.end(data) } else { this.writeHead(404) this.end('file not found') } }) } class myServer { constructor() { this._gets = {}; this._posts = {}; this._putss = {}; this._deletes = {}; this._server = http.createServer((req, res) => { const pathName = url.parse(req.url).pathname; if (req.method === "GET" && this._gets[pathName]) { this._gets[pathName](req, res); } else if (req.method === "POST" && this._posts[pathName]) { this._posts[pathName](req, res); } else if (req.method === "PUT" && this._puts[pathName]) { this._puts[pathName](req, res); } else if (req.method === "DELETE" && this._deletes[pathName]) { this._deletes[pathName](req, res); } else { res.writeHead(404) res.end('not found'); } }) } get(url, callback) { this._gets[url] = callback; } post(url, callback) { this._posts[url] = callback; } add(url, callback) { this._puts[url] = callback; } delete(url, callback) { this._deletes[url] = callback; } listen(port, callback) { this._server.listen(port, callback) } } const myExpress = () => { return new myServer() } module.exports = myExpress;