Node.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

我正在制作一个应用程序,包括一个带有“喜欢”和“不喜欢”的评论功能,就像Facebook一样。但我发现,当用户点击“喜欢”或“不喜欢”按钮时,一切都进行得很顺利——数据库已经更新,新数据已经呈现回以前的网页,除了用户需要手动刷新页面以获得包含新更新数据的新网页。以下是我的文件(我只是以“喜欢”函数的代码为例,“不喜欢”函数的代码是相同的):

JS代码:

$("#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非常感谢您的建议!我已经让它正常工作了。