express like code is now working with require and sendfile

This commit is contained in:
hugo gogo
2022-10-20 14:22:49 +02:00
parent 6faad87734
commit ffbb3bf442
3 changed files with 29 additions and 85 deletions

View File

@@ -0,0 +1,10 @@
<!Doctype html>
<html>
<head>
<title>title</title>
</head>
<body>
<h1>page 2</h1>
</body>
</html>

View File

@@ -2,22 +2,26 @@ const http = require('http')
const fs = require('fs') const fs = require('fs')
const url = require('url') const url = require('url')
const sendFile = (file, res) => { var res = http.ServerResponse.prototype
res.sendFile = function (file) {
fs.readFile(file, (err, data) => { fs.readFile(file, (err, data) => {
if (!err) { if (!err) {
res.writeHead(200, { console.log("here")
this.writeHead(200, {
'content-type': 'text/html; charset=utf-8' 'content-type': 'text/html; charset=utf-8'
}) })
res.end(data) this.end(data)
} }
else else
{ {
res.writeHead(404) this.writeHead(404)
res.end('file not found') this.end('file not found')
} }
}) })
} }
class myServer { class myServer {
constructor() { constructor() {
this._gets = {}; this._gets = {};
@@ -26,6 +30,7 @@ class myServer {
this._deletes = {}; this._deletes = {};
this._server = http.createServer((req, res) => { this._server = http.createServer((req, res) => {
const pathName = url.parse(req.url).pathname; const pathName = url.parse(req.url).pathname;
if (req.method === "GET" && this._gets[pathName]) { if (req.method === "GET" && this._gets[pathName]) {
@@ -44,7 +49,6 @@ class myServer {
res.end('not found'); res.end('not found');
} }
}) })
} }
get(url, callback) { this._gets[url] = callback; } get(url, callback) { this._gets[url] = callback; }
@@ -55,4 +59,7 @@ class myServer {
listen(port, callback) { this._server.listen(port, callback) } listen(port, callback) { this._server.listen(port, callback) }
} }
const myExpress = () => { return new myServer() }
module.exports = myExpress; module.exports = myExpress;

View File

@@ -1,82 +1,9 @@
//const http = require('http') const myExpress = require('./myExpress')
//const fs = require('fs')
//const url = require('url')
const sendFile = (file, res) => {
fs.readFile(file, (err, data) => {
if (!err) {
res.writeHead(200, {
'content-type': 'text/html; charset=utf-8'
})
res.end(data)
}
else
{
res.writeHead(404)
res.end('file not found')
}
})
}
//const server = http.createServer((req, res) => {
//
// let pathName = url.parse(req.url).pathname
//
// if (req.method === "GET") {
// if (pathName === "/")
// sendFile(__dirname + "/index.html", res)
// else
// {
// res.writeHead(404)
// res.end('wrong url')
// }
// }
//})
//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() }
const myExpress = require('myExpress')
const server = myExpress() const server = myExpress()
server.get("/", (req, res) => sendFile(__dirname + "/index.html", res)) server.get("/", (req, res) => res.sendFile(__dirname + "/index.html"))
server.get("/index.html", (req, res) => res.sendFile(__dirname + "/index.html"))
server.get("/index2.html", (req, res) => res.sendFile(__dirname + "/index2.html"))
const port = 3001; const port = 3001;
server.listen(port, console.log(`listening on port ${port}`)); server.listen(port, console.log(`listening on port ${port}`));