であることを確認してください。私はJadeとExpressJSを使って自分のサイトに簡単なログインをしています。それはすべて動作している、私が唯一の問題は、ユーザーが間違ったログインを詳細に入力するときです。間違った詳細を入力すると、URLのパラメータ(/admin?falseLogIn
)を使用してログインページにリダイレクトされます。私の質問は:このGET変数が私のjadeビューに存在するかどうかをどうやって確認できますか?URLのGET変数が
これは私のコードです:
ログin.jade
form(action="/log-in" method="post")
label Username
input(type="text" class="form-control" name="username" placeholder="Username")
label Password
input(type="text" class="form-control" name="password" placeholder="Password")
input(type="submit" class="btn btn-info pull-right" style="margin-top: 15px;" value="Log In")
app.js
app.get("/admin",function(req, res){
if(req.session.userName){
res.render("admin", {session_name: req.session.userName});
}else{
res.render("log-in");
}
});
app.post("/log-in", function(req, res){
var admin = Admin.findOne({"username": req.body.username, "password": req.body.password});
admin.count(function(error, count){
//console.log(count);
if(count > 0){
req.session.userName = req.body.username;
res.redirect("/admin");
}else{
res.redirect("/admin?falseLogIn");
}
});
});
私は私のヒスイのビュー内で次のことを試してみましたが、取得エラーCannot read property 'location' of undefined
:
- var page = window.location.pathname
if page === "/admin?falseLogIn"
.alert.alert-danger Error! Wrong details, please try again!
私が使用してHTMLで直接チェックすることができるだろうPHPにおけるので、私は、PHPの背景から来る:
<?php if(isset($_GET['falseLogIn'])){// display error to user } ?>
すべてのヘルプは大歓迎です。ありがとう!あなたはscript(type='text/javascript').
script(type='text/javascript').
var page = window.location.pathname
の下であなたにスクリプトを記述する必要がありますしかし、あなたはURLを比較したい場合は、あなたの代わりにpathname
のsearch
一部を取得する必要があります
管理ページコントローラのReq.query.falseLogin – Kevin
@Kevinありがとうございますが、正確にそのコードを入力する必要がありますか? –