如何解决使用Node Express EJS和MongoDB建立论坛
我正在使用Node,Express,EJS和MongoDB创建一个论坛。目前,我渲染论坛页面并使用Node和EJS从数据库传递数据。我使用GET和POST请求。一旦添加评论,页面就会存储在数据库中,然后重定向回相同的路由。然后,我可以向下滚动并查看我的评论。但是,我对此不满意,我希望评论和答复由Ajax处理,以便在发表评论时不刷新就创建发布请求,而无需刷新页面就可以加载新评论。关于如何实现此功能的任何建议?
可以在https://github.com/Ibrahim40021974/Forum上查看该项目。 (抱歉,代码不整洁。我仍在进行版本控制)。欢迎所有建议! 预先感谢。
解决方法
您想要实现的目标通常称为单页应用程序,在该程序中您不会看到页面刷新,但实际上该页面的一小部分已使用新数据进行了更新。
我已经使用Reactjs,Nodejs完成了,这在Reactjs中非常容易做到。如果您有兴趣,我可以分享此回购。
已经调查了您的项目以及我注意到的几件事。
- 如果我指的是正确的(https://github.com/Ibrahim40021974/Forum/blob/master/views/forum.ejs#L69),则需要停止使用
e.preventDefault()
提交默认表单。默认表单提交总是刷新不需要的页面。您必须对ajax调用执行相同的表单操作。对于exm。
handleFormSubmit(e){
e.preventDefault();
<add your ajax call here>
}
See once you do this if things work without page refresh.
2. See if this helps you with how to make ajax call. https://www.thetopsites.net/article/53326172.shtml
,
正如@Ajay kumar所说,最好的方法是创建一个单页应用程序:当插入新数据时仅刷新页面的一部分时,像react / angular / vue这样的框架就非常好。
但是您可以在不使用任何框架的情况下执行此操作,但这会很棘手。
您可以在ejs模板中添加javascript逻辑,当您提交评论时,将执行以下操作:
- 发送帖子请求以提交新评论
- 发布请求结束后,立即发送获取请求以获取该帖子的评论
- 更新DOM(vanillaJs或Jquery)以显示评论列表。
第一个选择将要求您更改项目体系结构,但更易于管理,第二个选择将使您可以继续使用ejs,但有点复杂。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。