express like code is now working with require and sendfile
This commit is contained in:
10
tests/tests_hugo/pure_node/index2.html
Normal file
10
tests/tests_hugo/pure_node/index2.html
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<!Doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>page 2</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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}`));
|
||||||
|
|||||||
Reference in New Issue
Block a user