首页 > 解决方案 > 当没有找到记录时,我需要向用户发送警报

问题描述

这是我来自 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 请求的响应,因此如果用户已经存在,页面不会重新加载或显示错误

标签: javascriptjquerynode.js

解决方案


使用 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);

                }
            }
        });
    });

推荐阅读