Node.js 为什么我需要刷新页面以获取最新更新的数据?
我正在制作一个应用程序,包括一个带有“喜欢”和“不喜欢”的评论功能,就像Facebook一样。但我发现,当用户点击“喜欢”或“不喜欢”按钮时,一切都进行得很顺利——数据库已经更新,新数据已经呈现回以前的网页,除了用户需要手动刷新页面以获得包含新更新数据的新网页。以下是我的文件(我只是以“喜欢”函数的代码为例,“不喜欢”函数的代码是相同的): JS代码:Node.js 为什么我需要刷新页面以获取最新更新的数据?,node.js,post,get,refresh,ejs,Node.js,Post,Get,Refresh,Ejs,我正在制作一个应用程序,包括一个带有“喜欢”和“不喜欢”的评论功能,就像Facebook一样。但我发现,当用户点击“喜欢”或“不喜欢”按钮时,一切都进行得很顺利——数据库已经更新,新数据已经呈现回以前的网页,除了用户需要手动刷新页面以获得包含新更新数据的新网页。以下是我的文件(我只是以“喜欢”函数的代码为例,“不喜欢”函数的代码是相同的): JS代码: $("#scrollit").on("click", ".fa-thumbs-up", function(){ var numberOfLike
$("#scrollit").on("click", ".fa-thumbs-up", function(){
var numberOfLikes = Number($(this).next().html());
var numberOfDislikes = Number($(this).next().next().next().html());
numberOfLikes = numberOfLikes + 1;
var Text = $(this).next().next().next().next().next().html();
console.log(Text);
$.ajax({
method: "POST",
url: "/searchresult/comments/likes",
data: {text:Text, likes: numberOfLikes, dislikes: numberOfDislikes}
});
});
Node.js代码:
app.post("/searchresult/comments/likes", function(req, res) {
var likes = req.body.likes;
var Text = req.body.text;
new Promise(function(resolve, reject) {
comments.update({text: Text}, {$set: {likes: likes}}, function(err){
if (err) {
console.log(err);
} else {
console.log("Likes update successfully!");
resolve(comments);
}
});
}).then(function(r){
console.log("DONE!");
res.redirect("/searchresult");
});
});
app.get("/searchresult", function(req, res){
var EnglishofWord = EnglishofWords[EnglishofWords.length - 1];
grewords.findOne({English: EnglishofWord}).populate("Comments").exec(function(err, allgrewords){
if (err) {
console.log(err);
} else {
console.log(allgrewords);
if (allgrewords == null || allgrewords.length < 1 || allgrewords == undefined ) {
console.log("We don't have this word in dictionary!");
res.render("errorpage");
} else {
res.render("searchresult", {greword:allgrewords});
}
}
});
});
app.post(“/searchresult/comments/likes”),函数(req,res){
var likes=req.body.likes;
var Text=req.body.Text;
新承诺(功能(解决、拒绝){
update({text:text},{$set:{likes:likes}}),函数(err){
如果(错误){
控制台日志(err);
}否则{
log(“更新成功!”);
解决(评论);
}
});
}).然后(函数(r){
console.log(“完成!”);
res.redirect(“/searchresult”);
});
});
app.get(“/searchresult”),函数(req,res){
var EnglishofWord=EnglishofWords[EnglishofWords.length-1];
grewords.findOne({English:EnglishofWord}).populate(“Comments”).exec(函数(err,allgrewords){
如果(错误){
控制台日志(err);
}否则{
console.log(allgrewords);
if(allgrewords==null | | allgrewords.length<1 | | allgrewords==undefined){
log(“我们字典里没有这个词!”);
res.render(“错误页面”);
}否则{
res.render(“searchresult”,{greword:allgrewords});
}
}
});
});
ejs代码:
<% greword.Comments.forEach(function(comment){ %>
<strong><p class="author"><%= comment.author %></p></strong>
<i class="far fa-thumbs-up"></i><span class="likes"><%= comment.likes %></span>
<i class="far fa-thumbs-down"></i><span class="dislikes"><%= comment.dislikes%></span>
<span class="pull-right">10 days ago</span>
<p><%= comment.text %></p>
<% }) %>
十天前
有人能帮我弄清楚吗?---为什么网页不能自动刷新?非常感谢P
//************************************************更新***************************************************//
非常感谢t3___rry,他/她的建议很有启发性!现在我已经让它正常工作了。您好,您正在谈论的是
实时
功能查看socket.io和/或feather.js非常感谢您的建议!我已经让它正常工作了。