ho questo pezzo di codice qui:Servire file statici e conflitti app.get utilizzando Express.js
var express = require('express')
, http = require('http')
var app = express();
var server = app.listen(1344);
var io = require('socket.io').listen(server);
app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({secret: 'secret'}));
app.get('/', function(req, res){
if(req.session){
console.log(req.session);
}
console.log('ok');
});
il codice all'interno del app.get()
richiamata non viene chiamato. Se commento la riga app.use(express.static(__dirname + '/public'))
, allora la callaback funziona. Ho provato a cambiare l'ordine, ma è come una lotteria! Preferirei sapere che cosa sta andando storto qui.
Sono sicuro che questo ha a che fare con la mancanza di conoscenza da parte mia su come viene chiamato il middleware. Qualcuno può aiutarmi a capire questo problema?
Fondamentalmente voglio solo eseguire una logica prima che i file siano serviti e che index.html sia caricato nel browser. Tra l'altro posizionare il app.get()
prima della linea app.use(express.static())
, non ha funzionato!
Hai un file public/index.html? –
Sì, ho ..... – limoragni
Ecco perché è rotto. Rimuovilo e tutto funzionerà. Potrebbe esserci un'opzione come "dir" per disabilitare gli indici per le cartelle, ma non sono sicuro che sia –