总 node.js noobie,开始玩各种教程和网站的演示代码,我注意到一些我不明白的东西......
也就是说,如果我的 /public 文件夹中有 index.html,那么
app.get("/", function (req, res) {
console.log("get /");
res.redirect("/test.html");
});
根本就没有被调用。一旦我将 index.html 重命名为 index2.html,就会调用该方法并将我重定向到 /public/test.html
这就是我所拥有的:
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'));
});
其余的几乎都取自本教程:http ://www.danielbaulig.de/socket-ioexpress/
任何其他文件都会出现同样的问题。如果我有 /public/test.html,那么当我打电话时
http://localhost:8201/test.html
这个 app.get 没有被调用:
app.get("/test.html", app.authenticateUser, function (req, res) {
console.log("get /test.html");
res.redirect("/test2.html");
});
当我删除 test.html 然后我被转发到 test2.html ......
我尝试重定向的原因是,如果用户未登录,我不希望他打开 index.html,而是希望将他转发到 login.html,如果 index.html 存在,这是不可能的。唯一的“解决方案”是做它糟糕的客户端,我不希望 index.html 在客户端浏览器中加载只是为了将他转发到 login.html,在我看来,服务器应该处理它。