Gesamt node.js noobie genannt wird, begann mit Demo-Codes von verschiedenen Tutorials und Websites zu spielen, und ich bemerkte etwas, das ich nicht verstehe ...node.js app.get nicht
nämlich, wenn ich Index .html in meinem/Öffentlichen Ordner, dann
app.get("/", function (req, res) {
console.log("get /");
res.redirect("/test.html");
});
wird einfach nie aufgerufen. Sobald ich index.html index2.html benennen dann die Methode aufgerufen wird, und ich bin /public/test.html umgeleitet
das ist, was ich habe:
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'));
});
und der Rest ist ziemlich viel aus diesem Tutorial: http://www.danielbaulig.de/socket-ioexpress/
Das gleiche Problem tritt bei jeder anderen Datei auf. Wenn ich /public/test.html haben, dann, wenn ich rufe
http://localhost:8201/test.html
diese app.get nicht genannt:
app.get("/test.html", app.authenticateUser, function (req, res) {
console.log("get /test.html");
res.redirect("/test2.html");
});
Wenn ich die test.html entfernen dann werde ich zu test2 weitergeleitet. html ...
Der Grund, warum ich versuche umzuleiten ist, wenn der Benutzer nicht eingeloggt ist Ich will nicht, dass er index.html öffnet, sondern ihn an login.html weiterleiten will, was beim index nicht möglich ist .html existiert. Die einzige "Lösung" ist es Clientseite zu machen, die saugt, ich möchte nicht, dass index.html in den Clientbrowser geladen wird, nur um ihn an login.html weiterzuleiten, der Server sollte meiner Meinung nach damit umgehen.
Warum verwenden Sie eine statische 'index.html' statt einer Ansicht? Scheint mir, als würdest du die Dinge nur noch schwerer machen. –