aboutsummaryrefslogtreecommitdiffstats
path: root/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'index.js')
-rw-r--r--index.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..d442c2d
--- /dev/null
+++ b/index.js
@@ -0,0 +1,81 @@
+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', '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: 'William Harrington', age: 39 },
+ {name: 'Julie Harrington', age: 32 }
+ ];
+
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify(users));
+ }*/
+
+ // Build file path
+ let filePath = path.join(__dirname,
+ 'public', req.url === '/' ? 'index.html' : req.url
+ );
+
+ // Extension of file
+ let extname = path.extname(filePath);
+
+ // Initial content type
+ let contentType = 'text/html';
+
+ // 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;
+ }
+
+
+ // 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(200, { 'Content-Type': 'text/html'});
+ res.end(content, 'utf8');
+ })
+ } else {
+ // Some server error
+ res.writeHead(500);
+ res.end(`Server Error: ${err.code}`);
+ }
+ } else {
+ // Success
+ res.writeHead(200, { 'Content-Type': contentType });
+ res.end(content, 'utf8');
+ }
+ });
+});
+
+const PORT = process.env.PORT || 3000;
+
+server.listen(PORT, () => console.log(`Server running on port ${PORT}`));