Javascript 如何将Node.js变量放入我的<;脚本></脚本>;?
问题: 我在脚本标记中有一些Firebase代码,但它不会执行。我应该如何在其中写入变量 通常,当我单击该按钮时,应该触发一个请求来更新Firebase中的upvote值,但什么也没有发生 代码没有执行,但我没有得到任何错误Javascript 如何将Node.js变量放入我的<;脚本></脚本>;?,javascript,jquery,node.js,firebase,Javascript,Jquery,Node.js,Firebase,问题: 我在脚本标记中有一些Firebase代码,但它不会执行。我应该如何在其中写入变量 通常,当我单击该按钮时,应该触发一个请求来更新Firebase中的upvote值,但什么也没有发生 代码没有执行,但我没有得到任何错误 代码: file.ejs <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https:
代码: file.ejs
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.5.0/firebase.js"></script>
<script>
// Initialize Firebase
// TODO: Replace with your project's customized code snippet
var config = {
apiKey: "info",
authDomain: "info",
databaseURL: "info",
storageBucket: "info",
messagingSenderId: "info"
};
firebase.initializeApp(config);
</script>
<div class ="containerMarginsDetails">
<h1 class= "detailsTitle"><%=post.title %></h1>
<div class="row">
<img class = "postImg" src="/images/uploads/<%= post.image %>">
<span class="UpvoteButton"> </span><span class="DownvoteButton"> </span> <span class="HP"><%= post.upvotes - post.downvotes%> HP</span>
</div>
</div>
<script>
var upvotesRef = firebase.database().ref("posts/fun/<%=id%>/upvotes");
var downvotesRef = firebase.database().ref("posts/fun/<%=id%>/downvotes");
$('.UpvoteButton').click(function () {
upvotesRef.transaction(function (upvotes) {
if (!upvotes) {
upvotes = 0;
}
upvotes = upvotes - 1;
return upvotes;
});
});
</script>
注意:Firebase也在我的app.js文件中进行了初始化 编辑: 如果我尝试此版本的代码,firebase请求将在每次重新加载页面时触发,而不是在单击时触发。我如何确保它仅在单击时触发
<% var upvotesRef = firebase.database().ref("posts/fun/"+id+"/upvotes");
var downvotesRef = firebase.database().ref("posts/fun/"+id+"/downvotes"); %>
$('.UpvoteButton').click(function () {
<% upvotesRef.transaction(function (upvotes) {
if (!upvotes) {
upvotes = 0;
}
upvotes = upvotes + 1;
return upvotes;
}); %>
});
编辑3:
在此之前,我还收到以下(非崩溃)错误消息:
主线程上的同步XMLHttpRequest不推荐使用,因为它会对最终用户的体验产生有害影响。如需更多帮助,请查看
编辑4:
如果我将规则更改为:
{
"rules": {
".read": "true",
".write": "true"
}
}
这个按钮很好用
但是,尽管我已通过身份验证,但为什么代码与前面的规则不兼容???因为您使用的是模板语言,所以不需要
+
运算符:
var upvotesRef = firebase.database().ref("posts/fun/<%=id%>/upvotes");
var-upvotesRef=firebase.database().ref(“posts/fun//upvots”);
由于您使用的是模板语言,因此不需要+
运算符:
var upvotesRef = firebase.database().ref("posts/fun/<%=id%>/upvotes");
var-upvotesRef=firebase.database().ref(“posts/fun//upvots”);
您可以尝试使用
遗憾的是,我不能评论(没有足够的代表),否则如果你检查按钮,我会问你是否看到id。你可以尝试用
遗憾的是,我无法发表评论(没有足够的代表),否则如果您检查按钮,我会问您是否看到id。我试过了。遗憾的是,它没有改变任何东西:/(这就是为什么我尝试了通常用于字符串连接的“+var+”符号)。令人困惑的是,我没有收到任何错误消息:(我建议查看模板语言生成的源代码,并确保它看起来有效。然后我会到处添加console.log语句,查看代码是什么,没有被调用。我查看了生成的源代码,一切正常。至于console.log,除非我这样写,否则它们不会打印任何内容:
顺便说一句:我更新了我的问题,在代码执行的地方尝试了一些东西,但是我无法仅在单击时执行它(Jquery是客户端,firebase func是服务器端)。您建议做什么?似乎只有
之间的代码被执行。我能够执行console.logs并发现错误>:)我用屏幕截图更新了我的问题。错误是什么意思?我尝试了。遗憾的是,它没有改变任何东西:/(这就是为什么我尝试了“+var+”)符号通常用于字符串连接)。令人困惑的是,我没有收到任何错误消息:(我建议查看模板语言生成的源代码,并确保它看起来有效。然后我会到处添加console.log语句,查看代码是什么,没有被调用。我查看了生成的源代码,一切正常。至于console.log,除非我这样写,否则它们不会打印任何内容:
顺便说一句:我更新了我的问题,在代码执行的地方尝试了一些东西,但是我无法仅在单击时执行它(Jquery是客户端,firebase func是服务器端)。您建议做什么?似乎只有
之间的代码被执行。我可以执行console.logs,发现错误>:)我用一个屏幕截图更新了我的问题。错误是什么意思?我尝试了你的符号,但我一定是做错了什么,因为我的终端没有打印出与id有关的任何内容。我还必须指出,我试图放在脚本标记之间的所有console.log语句都不会打印到我的终端。尽管如此,我可以通过书写打印id。它,但console.log打印在服务器端,对吗?如果将其写入脚本标记并在我的终端(服务器端)上打印id会怎么样当我写的时候:我尝试了你的符号,但我一定是做错了什么,因为我的终端没有打印任何关于id的内容。我还必须指出,我试图放在脚本标记之间的所有console.log语句都没有打印到我的终端。尽管如此,我可以通过写来打印id。它在那里。但是console.log打印在服务器sid上是吗?如果您将其写入脚本标记,并且当我写入时,id打印在我的终端(服务器端)上,该怎么办
var upvotesRef = firebase.database().ref("posts/fun/<%=id%>/upvotes");