修改
感谢您的帮助!您帮助我查明了问题并向我展示了我正在寻找的解决方案:Accessing Express.js local variables in client side JavaScript
CODE:
index.ejs
$('.UpvoteButton').click(function () {
if (authdata == null) {
return res.redirect('/users/login');
}
else {
var $this = $(this);
var $other = $('.DownvoteButton');
if ($this.hasClass("on")) {
$this.removeClass("on");
} else if (!$this.hasClass('on') && $other.hasClass("on")) {
$this.addClass('on');
$other.removeClass("on");
} else {
$this.addClass('on');
}
}
});
app.js
//Global vars
app.use(function(req, res, next) {
res.locals.authdata = firebase.auth().currentUser;
next();
});
问题:
当我点击时,没有任何反应。它之前没有if-else语句和重定向语句。
N.B。:这是一个EJS文件。我正在使用Node.js.
问题:
我做错了什么?
答案 0 :(得分:1)
如上所述,您尝试在客户端访问服务器端变量。看看这个:Accessing EJS variable in Javascript logic。
基本上,您希望使用以下方法在客户端声明变量:
<script>
var authdata = <%= authdata %>
</script>
然后,您可以添加代码。请记住将重定向更改为客户端识别的内容,即。 window.location.href = "/users/login";