Javascript 登录失败的客户端通知

Javascript 登录失败的客户端通知,javascript,node.js,express,Javascript,Node.js,Express,我有一个node.js项目,我可以在其中填写登录表单,该表单将作为url参数发送到我的server.js。如果发送的数据可以验证为已注册,则客户端将登录。我现在的问题是,当它不起作用时,如何通知客户? My login.html包含一个div,如果它是由My login.js文件触发的,则会显示该div。但是我如何激活触发器,我可以向客户端发送url参数并更改站点的行为吗 server.js app.get("/signUp/:username/:password", (req, res) =&

我有一个node.js项目,我可以在其中填写登录表单,该表单将作为url参数发送到我的server.js。如果发送的数据可以验证为已注册,则客户端将登录。我现在的问题是,当它不起作用时,如何通知客户? My login.html包含一个div,如果它是由My login.js文件触发的,则会显示该div。但是我如何激活触发器,我可以向客户端发送url参数并更改站点的行为吗

server.js

app.get("/signUp/:username/:password", (req, res) => {
    auth.signUp({
        username: req.params.username,
        password: req.params.password
    }, (result) => {
        if (result) {
            res.redirect("../../index.html");
        } else {
            res.redirect("../../index.html");
            // res.send("Login failed");
        }
    })
})
app.get("/signIn/:username/:password", (req, res) => {
    auth.signIn({
        username: req.params.username,
        password: req.params.password
    }, (result) => {
        if (result) {
            res.redirect("../../index.html");
        } else {
            res.send("Login failed");
        }
    })
})
login.js客户端

signIn = () => {
    let user = document.getElementById('signDiv-username').value;
    let pass = document.getElementById('signDiv-password').value;
    hideErrorLog();
    window.location.replace("/signIn/" + user + "/" + pass);
}
signUp = () => {
    let user = document.getElementById('signDiv-username').value;
    let pass = document.getElementById('signDiv-password').value;
    hideErrorLog();
    window.location.replace("/signUp/" + user + "/" + pass);
}

hideErrorLog = () => {
    let errorLog = document.getElementById("error-log");
    errorLog.style.display = "none";
    errorLog.innerText = "";
}
showErrorLog = (signUp) => {
    let errorLog = document.getElementById("error-log");
    errorLog.style.display = "block";
    if (signUp) {
        errorLog.innerText = "Benutzername existiert bereits!";
    } else {
        errorLog.innerText = "Benutzername/Passwort falsch!";
    }
}

我看到您一直在使用window.location.replace()调用SignUp和SignIn API,而您只是将用户名和密码替换为url的一部分,这不是进行API调用的方式。而且永远不要在URL中传递用户名和密码等敏感数据,将它们作为请求正文的一部分发送

您需要在catch()中使用并调用showErrorLog(),这意味着API调用中存在错误

示例获取代码

fetch('http://example.com/movies.json')
  .then(function(response) {
    // Add some code here
  })
  .then(function(myJson) {
    // call showErrorLog() here
  });

res.send将用字符串“login failed”替换整个页面和客户端javascript。您应该通过ajax调用发送凭据,或者在服务器端使用模板(如ejs模板)并使用res.render。