Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const http = require('http');
- const fs = require('fs');
- const path = require('path');
- const hostname = 'localhost';
- const port = 3000;
- const server = http.createServer((req, res) => {
- console.log('Request for ' + req.url + ' by method ' + req.method);
- if (req.method == 'GET') {
- var fileUrl;
- if (req.url == '/') fileUrl = '/index.html';
- else fileUrl = req.url;
- var filePath = path.resolve('./public' + fileUrl);
- const fileExt = path.extname(filePath);
- if (fileExt == '.html') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- filePath = path.resolve('./404.html');
- res.setHeader('Content-Type', 'text/html');
- fs.createReadStream(filePath).pipe(res);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'text/html');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.css') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'text/css');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.js') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'text/javascript');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.json') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'application/json');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.png') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'image/png');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.jpg') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'image/jpg');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.gif') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'image/gif');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.svg') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'image/svg+xml');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.wav') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'audio/wav');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.mp4') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'video/mp4');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.woff') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'application/font-woff');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.ttf') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'application/font-ttf');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.eot') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'application/vnd.ms-fontobject');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.otf') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'application/font-otf');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- else if (fileExt == '.wasm') {
- fs.exists(filePath, (exists) => {
- if (!exists) {
- res.statusCode = 404;
- console.log(`${fileUrl} not found`);
- return;
- }
- res.statusCode = 200;
- res.setHeader('Content-Type', 'application/wasm');
- fs.createReadStream(filePath).pipe(res);
- });
- }
- }
- else {
- filePath = path.resolve('./404.html');
- res.statusCode = 404;
- res.setHeader('Content-Type', 'text/html');
- fs.createReadStream(filePath).pipe(res);
- }
- });
- server.listen(port, hostname, () => {
- console.log(`Server running at http://${hostname}:${port}/`);
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement