Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 106 additions & 62 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,91 +1,135 @@
const http = require("http");
const path = require("path");
const fs = require("fs");
/* Basic example */
// const Person = require("./person") // CommonJS syntax
// const person1 = new Person("John Doe", 30)
// person1.greeting()

const server = http.createServer((req, res) => {
// if (req.url === '/') {
// fs.readFile(
// path.join(__dirname, 'public', 'index.html'),
// (err, content) => {
// if (err) throw err;
// res.writeHead(200, { 'Content-Type': 'text/html' });
// res.end(content);
// }
// );
// }

// if (req.url === '/api/users') {
// const users = [
// { name: 'Bob Smith', age: 40 },
// { name: 'John Doe', age: 30 }
// ];
// res.writeHead(200, { 'Content-Type': 'application/json' });
// res.end(JSON.stringify(users));
// }
/* Logger */
// const Logger = require("./logger")
// const logger = new Logger()
// logger.on("message", (data) => {
// console.log("Called Listener:", data)
// })

// logger.log("Hi there!")
// logger.log("Welcome to the party!")

/* HTTP request - Basic example */
// const http = require("http")
// const path = require("path")
// const fs = require("fs")

// const server = http.createServer((req, res) => {
// if (req.url === "/") {
// fs.readFile(path.join(__dirname, "public", "home.html"), (err, content) => {
// if (err) throw err
// res.statusCode = 200
// // res.setHeader(name, value)
// res.setHeader("Content-Type", "text/html")
// res.end(content)
// })
// }

// if (req.url === "/about") {
// fs.readFile(
// path.join(__dirname, "public", "about.html"),
// (err, content) => {
// if (err) throw err
// res.statusCode = 200
// res.setHeader("Content-Type", "text/html")
// res.end(content)
// }
// )
// }

// if (req.url === "/api/users") {
// const users = [
// {
// name: "Bob Smith",
// age: 40,
// },
// {
// name: "John Doe",
// age: 30,
// },
// ]

// // res.writeHead(statusCode[, statusMessage][, headers])
// res.writeHead(200, { "content-Type": "application/json" })
// res.end(JSON.stringify(users))
// }
// })

// const PORT = process.env.PORT || 5000

// server.listen(PORT, () => {
// console.log(`Server is running on port: ${PORT}`)
// })

/* HTTP request - Dynamic Example */
const http = require("http")
const path = require("path")
const fs = require("fs")

const server = http.createServer((req, res) => {
// Build file path
let filePath = path.join(
__dirname,
"public",
req.url === "/" ? "index.html" : req.url
);
req.url === "/" ? "home.html" : req.url
)

// Extension of file
let extname = path.extname(filePath);
let extname = path.extname(filePath)

// Initial content type
let contentType = "text/html";
let contentType = "text/html"

// Check ext and set content type
// Check extension and set content type
switch (extname) {
case ".js":
contentType = "text/javascript";
break;
case ".css":
contentType = "text/css";
break;
case ".json":
contentType = "application/json";
break;
case ".png":
contentType = "image/png";
break;
case ".jpg":
contentType = "image/jpg";
break;
case "js":
contentType = "text/javascript"
break
case "css":
contentType = "text/css"
break
case "json":
contentType = "application/json"
break
case "png":
contentType = "image/png"
break
case "jpg":
contentType = "image/jpg"
break
}

// Check if contentType is text/html but no .html file extension
if (contentType == "text/html" && extname == "") filePath += ".html";

// log the filePath
console.log(filePath);

// Read File
// Read file
fs.readFile(filePath, (err, content) => {
if (err) {
if (err.code == "ENOENT") {
// Page not found
fs.readFile(
path.join(__dirname, "public", "404.html"),
(err, content) => {
res.writeHead(404, { "Content-Type": "text/html" });
res.end(content, "utf8");
res.writeHead(200, { "content-Type": "text.html" })
res.end(content, "utf8")
}
);
)
} else {
// Some server error
res.writeHead(500);
res.end(`Server Error: ${err.code}`);
// Some server error
res.writeHead(500)
res.end(`Server Error: ${err.code}`)
}
} else {
// Success
res.writeHead(200, { "Content-Type": contentType });
res.end(content, "utf8");
res.writeHead(200, { "content-Type": contentType })
res.end(content, "utf8")
}
});
});
})
})

const PORT = process.env.PORT || 5000;
const PORT = process.env.PORT || 5000

server.listen(PORT, () => console.log(`Server running on port ${PORT}`));
server.listen(PORT, () => {
console.log(`Server is running on port: ${PORT}`)
})
19 changes: 7 additions & 12 deletions logger.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
const EventEmitter = require('events');
const uuid = require('uuid');
const EventEmitter = require("events")
const uuid = require("uuid")

// Generates a random id
// console.log(uuid.v4())

class Logger extends EventEmitter {
log(msg) {
// Call event
this.emit('message', { id: uuid.v4(), msg });
this.emit("message", { id: uuid.v4(), msg })
}
}

// module.exports = Logger;

const logger = new Logger();

logger.on('message', data => console.log('Called Listener', data));

logger.log('Hello World');
logger.log('Hi');
logger.log('Hello');
module.exports = Logger
Loading