node.jsの初心者とiamがexpress.jsリダイレクトルーチンで現在作業中です。 これまでのコードでは、セッション変数が保存されており、リダイレクトが正常に機能しています。 しかし、すぐに新しいタブを開き、(127.0.0.1/login.ejs)のようなURLを入力しようとすると、iamがログインしているとhub.ejsにリダイレクトされます。しかし、この場合はリダイレクトは機能しません。ログインしていなくても、新しいタブに(127.0.0.1/hub.ejs)などを入力しても同じ問題です。リダイレクトはlogin.ejsをロードするはずですが、何も動作していません。Node.js - res.redirectが動作しない
app.use(function(req, res, next) {
if (!req.session.userName && req.baseUrl !== 'login.ejs') {
return res.render(__dirname + "/login.ejs");
}
next();
})
app.get("/login.ejs", function(req, res) {
if(req.session.userName) {
return res.redirect(__dirname + "/hub.ejs");
}
res.render(__dirname + "/login.ejs");
});
app.get("/hub.ejs", function(req, res) {
res.render(__dirname + "/hub.ejs", {userName: req.session.userName, clients: clients});
});
第1の機能ブロック、app.use
は後にが定義されているすべてのルートのために実行される明示ミドルウェアである:ページが
app.get("/login.ejs", function(req, res)
{
if(!req.session.userName)
{
res.render(__dirname + "/login.ejs");
}
else
{
res.redirect(__dirname + "/hub.ejs");
}
});
app.get("/hub.ejs", function(req, res)
{
if(req.session.userName)
{
res.render(__dirname + "/hub.ejs", {userName: req.session.userName, clients: clients});
}
else
{
res.redirect(__dirname + "/login.ejs");
}
});
リダイレクトドキュメント:http://expressjs.com/en/api.html#res.redirect –