Lógica del servidor de archivos estáticos Node.js (con Connect middleware)
Digamos que tengo la siguiente estructura de sistema de archivos:
/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
El resultado final es queadmin/index.html
se vería como
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/screen.js"></script>
Es decir, estoy cargando dos archivos de diferentes ubicaciones. Básicamente, el pensamiento aquí es"comprobar si el archivo está en/share
Si no es así, intente cargarlo desde la carpeta según el puerto ".
Y aquí está el código actual que estoy usando:
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?
PD: Este sistema debe ser accesible a nivel mundial a través dehttp://host/
(posiblemente un dominio o ip estática) Y accesible a través de la red local a través dehttp://host:90/
.
Si bien las cosas en el puerto 90 no dañarán el sistema (es solo una pantalla de salida), preferiría que la gente no pudiera acceder a él desde el exterior (esto se hace fácilmente asegurándose de que no haya reenvío del puerto 90 entre el enrutador y el servidor). ).