javascript - 如何在屏幕上显示用户输入的同时将用户数据保存到数据库
问题描述
在我的 js 文件中,我有一个在屏幕上显示用户数据的函数,但由于某种原因,这就是阻止数据保存到数据库的原因。我想要两者都有,所以没有 js 文件,它将它保存到数据库中。
编辑:我基本上想做的是永久上传客户在屏幕上输入的内容,这样其他客户就可以在将其保存到数据库的同时看到所有内容。但我的问题是我的 js 脚本阻止将客户端内容保存到数据库中。我是 Angular 的新手,但如果有人可以提供使用 $http.post 的示例,我将非常感激,如果这有助于我的要求。
编辑:我有点发现我的问题,但我还没有完全解决它。来自按钮元素的 ng-click 阻止了客户端数据保存到数据库,但现在启用提交后的按钮,导致提交许多表单。我该如何处理?我对这个网站还很陌生,所以这会改变我的问题吗?
HTML
<form action="/blog" method="POST">
<div id="textarea-format-structure">
<textarea name="dummyInfo" id="blogVal" ng-model="textAreaValue"
ng-change="textChange()" ng-focus="btnChange = true" />
</div>
<button ng-disabled="btnChange" ng-click="btnChange = true" class="btnpost">Post</button>
</form>
<div id="my-posts-blog"></div>
JS
function postVal() {
var blogVal = document.getElementById("blogVal");
var appendVal = document.getElementById("my-posts-blog");
var create_div = document.createElement("div");
create_div.textContent = blogVal.value;
create_div.classList.add("post");
appendVal.prepend(create_div);
blogVal.value = "";
}
document.getElementById("blogVal").focus();
var postIt = document.querySelector(".btnpost");
postIt.addEventListener("click", postVal, false);
节点.JS
router.post("/blog", (req, res) => {
mongo.connect(url, { useNewUrlParser: true }, (err, client) => {
var db = client.db("test");
db.collection("collect").insertOne({ myBlog: req.body.dummyInfo});
});
});
解决方案
如果您使用的是 angularjs,那么为什么不使用 $http.post 呢?
- 因此,在 ng-click 上,您可以进行函数调用,在该函数中设置您要设置的任何变量,准备好要传递的数据并使用 $http.post 和参数在后端进行调用。它不会刷新您的屏幕。
推荐阅读
- c++ - 函数自动循环?
- java - 爪哇;无法将字符串矩阵转换为双矩阵:Errorjava.lang.NumberFormatException
- python - 尽管将 null 设置为 true 并且将空白设置为 true,但 django 中的 NOT NULL 约束失败错误
- java - 从列表中获取 Obj
给定一个 id 而不必遍历整个 List - javascript - 如何从对象数组构造对象树(展开数组)
- asynchronous - Clojure - Core.async 管道 + 混淆
- django - 使用 python 3.7 的 Docker 错误:生成器表达式必须用括号括起来
- raspberry-pi3 - rp3 上的 conda 问题:“找不到某些依赖项
: 布拉斯 * openblas" - python - 使用 Python 的 Stack 实现提取 html 标签
- python - 在python中将字符附加到字符串