Advertisement
Guest User

index.js

a guest
Oct 3rd, 2021
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.48 KB | None | 0 0
  1. const http = require('http');
  2. const fs = require('fs');
  3. const path = require('path');
  4.  
  5. const hostname = 'localhost';
  6. const port = 3000;
  7.  
  8. const server = http.createServer((req, res) => {
  9. console.log('Request for ' + req.url + ' by method ' + req.method);
  10.  
  11. if (req.method == 'GET') {
  12. var fileUrl;
  13. if (req.url == '/') fileUrl = '/index.html';
  14. else fileUrl = req.url;
  15.  
  16. var filePath = path.resolve('./public' + fileUrl);
  17. const fileExt = path.extname(filePath);
  18. if (fileExt == '.html') {
  19. fs.exists(filePath, (exists) => {
  20. if (!exists) {
  21. res.statusCode = 404;
  22. filePath = path.resolve('./404.html');
  23. res.setHeader('Content-Type', 'text/html');
  24. fs.createReadStream(filePath).pipe(res);
  25. return;
  26. }
  27. res.statusCode = 200;
  28. res.setHeader('Content-Type', 'text/html');
  29. fs.createReadStream(filePath).pipe(res);
  30. });
  31. }
  32. else if (fileExt == '.css') {
  33. fs.exists(filePath, (exists) => {
  34. if (!exists) {
  35. res.statusCode = 404;
  36. console.log(`${fileUrl} not found`);
  37. return;
  38. }
  39. res.statusCode = 200;
  40. res.setHeader('Content-Type', 'text/css');
  41. fs.createReadStream(filePath).pipe(res);
  42. });
  43. }
  44. else if (fileExt == '.js') {
  45. fs.exists(filePath, (exists) => {
  46. if (!exists) {
  47. res.statusCode = 404;
  48. console.log(`${fileUrl} not found`);
  49. return;
  50. }
  51. res.statusCode = 200;
  52. res.setHeader('Content-Type', 'text/javascript');
  53. fs.createReadStream(filePath).pipe(res);
  54. });
  55. }
  56. else if (fileExt == '.json') {
  57. fs.exists(filePath, (exists) => {
  58. if (!exists) {
  59. res.statusCode = 404;
  60. console.log(`${fileUrl} not found`);
  61. return;
  62. }
  63. res.statusCode = 200;
  64. res.setHeader('Content-Type', 'application/json');
  65. fs.createReadStream(filePath).pipe(res);
  66. });
  67. }
  68. else if (fileExt == '.png') {
  69. fs.exists(filePath, (exists) => {
  70. if (!exists) {
  71. res.statusCode = 404;
  72. console.log(`${fileUrl} not found`);
  73. return;
  74. }
  75. res.statusCode = 200;
  76. res.setHeader('Content-Type', 'image/png');
  77. fs.createReadStream(filePath).pipe(res);
  78. });
  79. }
  80. else if (fileExt == '.jpg') {
  81. fs.exists(filePath, (exists) => {
  82. if (!exists) {
  83. res.statusCode = 404;
  84. console.log(`${fileUrl} not found`);
  85. return;
  86. }
  87. res.statusCode = 200;
  88. res.setHeader('Content-Type', 'image/jpg');
  89. fs.createReadStream(filePath).pipe(res);
  90. });
  91. }
  92. else if (fileExt == '.gif') {
  93. fs.exists(filePath, (exists) => {
  94. if (!exists) {
  95. res.statusCode = 404;
  96. console.log(`${fileUrl} not found`);
  97. return;
  98. }
  99. res.statusCode = 200;
  100. res.setHeader('Content-Type', 'image/gif');
  101. fs.createReadStream(filePath).pipe(res);
  102. });
  103. }
  104. else if (fileExt == '.svg') {
  105. fs.exists(filePath, (exists) => {
  106. if (!exists) {
  107. res.statusCode = 404;
  108. console.log(`${fileUrl} not found`);
  109. return;
  110. }
  111. res.statusCode = 200;
  112. res.setHeader('Content-Type', 'image/svg+xml');
  113. fs.createReadStream(filePath).pipe(res);
  114. });
  115. }
  116. else if (fileExt == '.wav') {
  117. fs.exists(filePath, (exists) => {
  118. if (!exists) {
  119. res.statusCode = 404;
  120. console.log(`${fileUrl} not found`);
  121. return;
  122. }
  123. res.statusCode = 200;
  124. res.setHeader('Content-Type', 'audio/wav');
  125. fs.createReadStream(filePath).pipe(res);
  126. });
  127. }
  128. else if (fileExt == '.mp4') {
  129. fs.exists(filePath, (exists) => {
  130. if (!exists) {
  131. res.statusCode = 404;
  132. console.log(`${fileUrl} not found`);
  133. return;
  134. }
  135. res.statusCode = 200;
  136. res.setHeader('Content-Type', 'video/mp4');
  137. fs.createReadStream(filePath).pipe(res);
  138. });
  139. }
  140. else if (fileExt == '.woff') {
  141. fs.exists(filePath, (exists) => {
  142. if (!exists) {
  143. res.statusCode = 404;
  144. console.log(`${fileUrl} not found`);
  145. return;
  146. }
  147. res.statusCode = 200;
  148. res.setHeader('Content-Type', 'application/font-woff');
  149. fs.createReadStream(filePath).pipe(res);
  150. });
  151. }
  152. else if (fileExt == '.ttf') {
  153. fs.exists(filePath, (exists) => {
  154. if (!exists) {
  155. res.statusCode = 404;
  156. console.log(`${fileUrl} not found`);
  157. return;
  158. }
  159. res.statusCode = 200;
  160. res.setHeader('Content-Type', 'application/font-ttf');
  161. fs.createReadStream(filePath).pipe(res);
  162. });
  163. }
  164. else if (fileExt == '.eot') {
  165. fs.exists(filePath, (exists) => {
  166. if (!exists) {
  167. res.statusCode = 404;
  168. console.log(`${fileUrl} not found`);
  169. return;
  170. }
  171. res.statusCode = 200;
  172. res.setHeader('Content-Type', 'application/vnd.ms-fontobject');
  173. fs.createReadStream(filePath).pipe(res);
  174. });
  175. }
  176. else if (fileExt == '.otf') {
  177. fs.exists(filePath, (exists) => {
  178. if (!exists) {
  179. res.statusCode = 404;
  180. console.log(`${fileUrl} not found`);
  181. return;
  182. }
  183. res.statusCode = 200;
  184. res.setHeader('Content-Type', 'application/font-otf');
  185. fs.createReadStream(filePath).pipe(res);
  186. });
  187. }
  188. else if (fileExt == '.wasm') {
  189. fs.exists(filePath, (exists) => {
  190. if (!exists) {
  191. res.statusCode = 404;
  192. console.log(`${fileUrl} not found`);
  193. return;
  194. }
  195. res.statusCode = 200;
  196. res.setHeader('Content-Type', 'application/wasm');
  197. fs.createReadStream(filePath).pipe(res);
  198. });
  199. }
  200.  
  201.  
  202. }
  203. else {
  204. filePath = path.resolve('./404.html');
  205. res.statusCode = 404;
  206. res.setHeader('Content-Type', 'text/html');
  207. fs.createReadStream(filePath).pipe(res);
  208. }
  209. });
  210.  
  211.  
  212. server.listen(port, hostname, () => {
  213. console.log(`Server running at http://${hostname}:${port}/`);
  214. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement