Node.js - внешние файлы JS и CSS (просто использование node.js не экспресс)

Я пытаюсь выучить node.js и наткнулся на препятствие.

Моя проблема заключается в том, что я не могу загрузить внешний файл CSS и JS в HTML-файл.

GET http://localhost:8080/css/style.css 404 (Not Found) 
GET http://localhost:8080/js/script.css 404 (Not Found) 

(это было, когда все файлы были в корне приложения)

Мне сказали несколько подражать следующей структуре приложения, добавить маршрут для общедоступного каталога, чтобы веб-сервер мог обслуживать внешние файлы.

структура моего приложения такая

domain.com
  app/
    webserver.js

  public/
    chatclient.html

    js/
      script.js

    css/
      style.css

Так что мой скрипт webserver.js находится в корне приложения, а все, к чему я хочу получить доступ, находится в «общедоступном».

Я тоже виделэтот пример который использует path.extname () для получения любых расширений файлов, расположенных в пути. (см. последний блок кода).

Поэтому я попытался объединить новую структуру сайта и этот пример path.extname (), чтобы веб-сервер разрешил доступ к любому файлу в моем общедоступном каталоге, чтобы я мог отобразить html-файл, который ссылается на внешние файлы js и css ,

Мой webserver.js выглядит так.

var http = require('http')
, url = require('url')
, fs = require('fs')
, path = require('path')
, server;

server = http.createServer(function(req,res){

  var myPath = url.parse(req.url).pathname;

    switch(myPath){

      case '/public':

        // get the extensions of the files inside this dir (.html, .js, .css)
        var extname = mypath.extname(path);

          switch (extname) {

            // get the html
            case '.html':
              fs.readFile(__dirname + '/public/chatclient.html', function (err, data) {
                if (err) return send404(res);
                res.writeHead(200, {'Content-Type': 'text/html'});
                res.write(data, 'utf8');
                res.end();
              });
            break;

            // get the script that /public/chatclient.html references
            case '.js':
              fs.readFile(__dirname + '/public/js/script.js', function (err, data) {
                if (err) return send404(res);
                res.writeHead(200, { 'Content-Type': 'text/javascript' });
                res.end(content, 'utf-8');
                res.end();
              });
            break;

            // get the styles that /public/chatclient.html references
            case '.css':
              fs.readFile(__dirname + '/public/css/style.css', function (err, data) {
                if (err) return send404(res);
                res.writeHead(200, { 'Content-Type': 'text/javascript' });
                res.end(content, 'utf-8');
                res.end();
              });
          }
          break;

          default: send404(res);
        }
    });

Внутри публичного доступа я пытаюсь получить любую из папок / файлов внутри этого каталога через var extname = mypath.extname (path); Аналогично ссылке, которую я предоставил.

Но в данный момент «extname» пусто, когда я консоль войти

Кто-нибудь может посоветовать, что мне нужно добавить или настроить здесь? Я знаю, что это легко сделать в Express, но я хотел бы знать, как добиться того же, просто полагаясь на Node.

Я благодарен за любую помощь в этом.

Заранее спасибо.

Ответы на вопрос(6)

Ваш ответ на вопрос