Logika statycznego serwera plików Node.js (przy użyciu oprogramowania pośredniego Connect)

Powiedzmy, że mam następującą strukturę systemu plików:

/app/            Main application folder
  /app.js        Server JS file ran by node.js
  /public        Folder containing files for public website (port 80)
    /index.html
    /js/
      /game.js
  /admin/        Folder containing files used by local network system (port X)
    /index.html
    /js/
      /screen.js
  /share/        Folder containing files to be used by public website OR lan
    /js/
      /jquery.js

Efekt końcowy jest takiadmin/index.html wyglądałby jak:

<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/screen.js"></script>

Oznacza to, że ładuję dwa pliki z różnych lokalizacji. Zasadniczo myśl jest tutaj„sprawdź, czy plik jest włączony/share, jeśli nie, spróbuj załadować go z folderu zgodnie z portem ”.

A oto obecny kod, którego używam:

var connect = require('connect'),
    sourcePublic = connect().use(
        connect.static(__dirname + '/public', { maxAge: 86400000 })
    ),
    sourceAdmin = connect().use(
        connect.static(__dirname + '/admin', { maxAge: 86400000 })
    ),
    sourceShare = connect().use(
        connect.static(__dirname + '/share', { maxAge: 86400000 })
    ),
    serverPublic = http.createServer(sourcePublic).listen(80),
    serverAdmin  = http.createServer(sourceAdmin).listen(90);
// ok, how do I use sourceShare?

PS: Ten system powinien być dostępny na całym świeciehttp://host/ (ewentualnie domena lub statyczny adres IP) ORAZ dostęp przez sieć lokalną przezhttp://host:90/.

Podczas gdy rzeczy na porcie 90 nie uszkodzą systemu (to tylko ekran wyjściowy), wolałbym, żeby ludzie nie mogli uzyskać do niego dostępu z zewnątrz (łatwo zrobić, upewniając się, że nie ma portu 90 przekierowującego między routerem a serwerem ).

questionAnswers(1)

yourAnswerToTheQuestion