I'm new to node.js. Whenever I run the localhost server, I always get a 404 error (i made a function in case of 404 errors). I'm trying to access the index.html file that is in my public folder. My directories look like this: -root - lib - public - index.html - stylesheets - javascriptAny help would be appreciated. Below is my code, server.js which is in root directory.var http = require('http');var fs = require('fs');var path = require('path');var mime = require('mime');var cache = {}function send404(response) { response.writeHead(404, {'Content-Type': 'text/plain'}); response.write('Error 404: resource not found'); response.end(); }function sendFile(response, filePath, fileContents) { response.writeHead(200, {"content-type": mime.lookup(path.basename(filePath))}); response.end(fileContents); }function serveStatic(response, cache, absPath) { if (cache[absPath]) { sendFile(response, absPath, cache[absPath]); } else { fs.exists(absPath, function(exists) { if (exists) { fs.readFile(absPath, function(err, data) { if (err) { send404(response); } else { cache[absPath] = data; sendFile(response, absPath, data); } }); } else { send404(response); } }); } }var server = http.createServer(function(request, response){ var filePath = false; if(request.url == '/') { filepath = 'public/index.html'; } else { filepath = 'public' + request.url; } var absPath = './' + filePath; serveStatic(response, cache, absPath); });server.listen(8000, function(){ console.log("Server listening on port 8000"); });
Submitted February 08, 2016 at 04:24AM by InarticulateAtheist
No comments:
Post a Comment