noobie Node.js totales, comenzaron a jugar con los códigos de demostración de varios tutoriales y sitios web y me di cuenta de algo que no entiendo ...Node.js app.get no siendo llamados
saber, si tengo índice .html en mi carpeta/público, entonces
app.get("/", function (req, res) {
console.log("get /");
res.redirect("/test.html");
});
se llama simplemente nunca. Tan pronto como puedo cambiar el nombre index.html a index2.html entonces el método se llama y estoy redirigido a /public/test.html
esto es lo que tengo:
var io = require('socket.io'),
express = require('express'),
MemoryStore = express.session.MemoryStore,
app = express.createServer(),
sessionStore = new MemoryStore();
app.configure(function() {
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
store: sessionStore,
secret: 'secret',
key: 'express.sid'
}));
app.use(express.static(__dirname + '/public'));
});
y el resto es bastante muy tomado de este tutorial: http://www.danielbaulig.de/socket-ioexpress/
El mismo problema aparece con cualquier otro archivo. Si tengo /public/test.html, luego, cuando me llame
http://localhost:8201/test.html
este app.get no se llama:
app.get("/test.html", app.authenticateUser, function (req, res) {
console.log("get /test.html");
res.redirect("/test2.html");
});
Cuando quito el test.html entonces me desvíe a test2. html ...
La razón por la que trato de redirigir es si el usuario no ha iniciado sesión. No quiero que abra index.html, sino que desea reenviarlo a login.html, lo que no es posible si index .html existe. La única "solución" es hacerlo desde el lado del cliente, lo que apesta, no quiero que index.html cargue en el navegador de los clientes solo para reenviarlo a login.html, el servidor debería, en mi opinión, manejar eso.
¿Por qué está usando un 'index.html' estático en lugar de una vista? Me parece que solo te estás haciendo las cosas más difíciles. –