Entonces, estoy tratando de crear un sistema de cuentas, hice un sistema de inicio de sesión que funciona, pero cuando ingresa credenciales incorrectas, quiero que muestre "nombre de usuario o contraseña incorrectos" en el valor de ab vacío
etiqueta, lo que pasa es que no se como acceder a la
etiqueta de app.js (proyecto node.js)
<div class="form"> <form class="login-form" action="/account" method="post"> <p id = "check"></p> <h1 id = "login-text">Login</h1> <label style="color:white;">Username:</label> <input type="text" id = "username" placeholder="Enter Username" name="username" required> <label style="color:white;">Password:</label> <input type="password" id = "password" placeholder="Enter Password" name="password" required> <button type="submit">Login</button> <a href="register"><h5>register</h5></a> </form> </div> </div> app.post('/account', (req, res) => { const username = req.body.username; const password = req.body.password; con.query("USE discbin") con.query('SELECT * FROM accounts WHERE username = ?', [username], function (err, result, fields) { if (err) throw err; if (result.length > 0 && result[0].password === password) { console.log(result[0].username + " logged in!") res.render('account'); } else { console.log("a user tried to login using the username: " + username) //set <p> to "wrong username or password" } }); });Creo que este es un problema XY . Hasta donde yo sé, no es posible acceder a un elemento DOM directamente desde el servidor, sin embargo, puede lograr el mismo resultado con un poco de JavaScript en el lado del cliente.
Por ejemplo, la respuesta del servidor podría ser el éxito de la autenticación, un objeto JSON como ese:
{ auth: true, //some token I guess... }y al fallar la autenticación:
{ auth: false }Luego, puede usar JavaScript para acceder al elemento que desea y modificar su contenido usando el método innerHTML. En su caso, podría almacenar la cadena que se mostrará y modificarla de acuerdo con la respuesta del servidor.
let checkStringVariable = "";En la respuesta del servidor:
checkStringVariable = response.auth ? "" : "wrong username or password"; document.getElementbById("check").innerHTML = checkStringVariable;document.getElementById("check").textContent = "wrong username or password";document.getElementById("check")textContent en el texto que desea usar