Estoy creando una página de inicio de sesión para mi sitio web,
código del lado del cliente
<!DOCTYPE html> <html> <head> <div class="header"> <h1>create new account</h1> </div> <div class="container"> <div class="form"> <form action="/api/db" method="POST"> <div> <input type="text" name="name" id="name" placeholder="name" required/> </div> <div> <input type="password" name="password" id="password" placeholder="password" required> </div> <div> <button type="submit">create new account</button> </div> </form> </div> </div> </head> <body> <link rel="stylesheet" href="style.css"> <script> let name = document.querySelector('#name').value let password = document.querySelector('#password').value let form = document.querySelector('form') const { cookie } = document form.addEventListener('submit', (e) => { localStorage.setItem('name', name) localStorage.setItem('password', password) }) </script>código del servidor
class User { constructor(name, password) { this.name = name this.password = password } } const Datastore = require('nedb') const express = require('express') const app = express() const database = new Datastore('database.db') database.loadDatabase() app.post('/api/db', (req, res) => { let name = req.body.name let password = req.body.password database.insert(new User(name, password)) res.redirect('/chat') })Tengo una entrada de nombre y contraseña dentro de un formulario, y cuando el usuario envía el formulario, la secuencia de comandos debe guardar el nombre y la contraseña en el almacenamiento local, pero cuando verifico el almacenamiento local en la pestaña "aplicación", los valores de los elementos son " indefinido"
Editar: #oops, me acabo de dar cuenta de lo tonta que era mi pregunta
Eso es porque está obteniendo los valores de entrada antes de que el usuario envíe el formulario. Debe obtenerlos exactamente cuando se activa el evento de envío. Por ejemplo:
const form = document.querySelector('form'); form.addEventListener('submit', (e) => { const name = form.querySelector('#name').value const password = form.querySelector('#password').value localStorage.setItem('name', name) localStorage.setItem('password', password) })