pure node act like express

This commit is contained in:
hugo gogo
2022-10-18 23:44:34 +02:00
parent 0b493fc0ec
commit 0071cf1950

View File

@@ -3,7 +3,7 @@ const http = require('http')
const fs = require('fs') const fs = require('fs')
const url = require('url') const url = require('url')
const sendMyFile = (file, res) => { const sendFile = (file, res) => {
fs.readFile(file, (err, data) => { fs.readFile(file, (err, data) => {
if (!err) { if (!err) {
res.writeHead(200, { res.writeHead(200, {
@@ -25,9 +25,7 @@ const sendMyFile = (file, res) => {
// //
// if (req.method === "GET") { // if (req.method === "GET") {
// if (pathName === "/") // if (pathName === "/")
// sendMyFile(__dirname + "/index.html", res) // sendFile(__dirname + "/index.html", res)
// else if (pathName === "/index.html")
// sendMyFile(__dirname + "/index.html", res)
// else // else
// { // {
// res.writeHead(404) // res.writeHead(404)
@@ -36,28 +34,47 @@ const sendMyFile = (file, res) => {
// } // }
//}) //})
class customServer {
let myExpress = () => { constructor() {
return http.createServer((req, res) => { this._gets = {};
let pathName = url.parse(req.url).pathname this._posts = {};
if (req.method === "GET") { this._putss = {};
if (pathName === "/") this._deletes = {};
sendMyFile(__dirname + "/index.html", res)
else this._server = http.createServer((req, res) => {
{ const pathName = url.parse(req.url).pathname;
res.writeHead(404)
res.end('wrong url') if (req.method === "GET" && this._gets[pathName]) {
this._gets[pathName](req, res);
} }
} else if (req.method === "POST" && this._posts[pathName]) {
}) this._gets[pathName](req, res);
}
else if (req.method === "PUT" && this._puts[pathName]) {
this._gets[pathName](req, res);
}
else if (req.method === "DELETE" && this._deletes[pathName]) {
this._gets[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) }
} }
//server.get('/', (req, res) => { const server = new customServer();
// res.sendFile(__dirname + "/" + "index.html") server.get("/", (req, res) => sendFile(__dirname + "/index.html", res));
//});
const server = myExpress();
const port = 3001; const port = 3001;
//server.listen(port);
server.listen(port, console.log(`listening on port ${port}`)); server.listen(port, console.log(`listening on port ${port}`));