javascript - 当没有找到记录时,我需要向用户发送警报
问题描述
这是我来自 nodejs 服务器的发布请求
app.post('/api/users', urlencodedParser, function (req, res) {
if (!req.body) return res.sendStatus(400);
console.log(req.body);
var data = req.body;
db.collection('users').findOne({
username: data.username
}, (err, result) => {
if (result === null) {
db.collection('users').insertOne(data, function (err) {
if (err) throw err;
console.log("Record inserted!");
res.status(200).send("recordInserted");
})
} else {
console.log("Already exists");
res.status(500).send("userExists");
}
})
})
这是我的ajax请求
$('#signupForm').on('submit', function () {
var userData = {
fullName: $("#fullName").val(),
username: $("#username").val(),
password: $("#password").val(),
email: $("#email").val()
};
$.ajax({
type: "post",
data: userData,
dataType: "text",
url: "/api/users",
function (data, status) {
if(data== 'recordInserted'){
alert("Recors inserted");
console.log("Inserted \n" + data +"\n" + status);
}
else if(data == 'userExists') {
alert("User exists");
console.log(data + "\n " + status);
}
}
});
});
我无法发回对 ajax 请求的响应,因此如果用户已经存在,页面不会重新加载或显示错误
解决方案
使用 e.preventDefault(); 方法将阻止页面重新加载。你可以复制粘贴代码
$('#signupForm').on('submit', funfunction(e) {
e.preventDefault();
let userData = {
fullName: $("#fullName").val(),
username: $("#username").val(),
password: $("#password").val(),
email: $("#email").val()
};
$.ajax({
type: "post",
data: userData,
dataType: "text",
url: "/api/users",
function (data, status) {
if(data== 'recordInserted'){
alert("Recors inserted");
console.log("Inserted \n" + data +"\n" + status);
}
else if(data == 'userExists') {
alert("User exists");
console.log(data + "\n " + status);
}
}
});
});
推荐阅读
- mysql - 奇怪的 MySQL 错误 #1242 - 子查询返回多于 1 行
- azure-devops - 如果发布失败,则 CI 管道失败
- c++ - “const char *”类型的参数与“char”类型的参数不兼容
- haskell - 如何避免 MaybeT 中的提升以及为什么最终验证无效?
- swift - 如何为@ObservedObject 的更改设置动画?
- java - 如何在 Windows 上的 java 中使用 Firebase ML-Kit 文本识别
- c# - 如何在更新功能中将新分数添加到旧分数
- python-3.x - 如何在 django 项目中安装 swagger_client
- javascript - CSS 动画不适用于所有 React 组件
- android - 将日期转换为时间戳并将其存储在 SQLite 中后如何搜索特定日期