server.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import http from 'http';
  2. import {HttpStaticRouter} from '@e22m4u/js-http-static-router';
  3. // создание экземпляра маршрутизатора
  4. const staticRouter = new HttpStaticRouter();
  5. // определение директории "../static"
  6. // доступной по адресу "/static"
  7. staticRouter.addRoute(
  8. '/static', // путь маршрута
  9. `${import.meta.dirname}/static`, // файловый путь
  10. );
  11. // объявление файла "./static/file.txt"
  12. // доступным по адресу "/static"
  13. staticRouter.addRoute(
  14. '/file.txt',
  15. `${import.meta.dirname}/static/file.txt`,
  16. );
  17. // создание HTTP сервера и подключение обработчика
  18. const server = new http.Server();
  19. server.on('request', (req, res) => {
  20. // если статический маршрут найден,
  21. // выполняется поиск и отдача файла
  22. const staticRoute = staticRouter.matchRoute(req);
  23. if (staticRoute) {
  24. return staticRouter.sendFileByRoute(staticRoute, req, res);
  25. }
  26. // в противном случае запрос обрабатывается
  27. // основной логикой приложения
  28. res.writeHead(200, {'Content-Type': 'text/plain'});
  29. res.end('Hello from App!');
  30. });
  31. server.listen(3000, () => {
  32. console.log('Server is running on http://localhost:3000');
  33. console.log('Try to open:');
  34. console.log('http://localhost:3000/static');
  35. console.log('http://localhost:3000/file.txt');
  36. });