Tengo un formulario en el lado del cliente en el que envío datos (nombre de usuario y contraseña) a mi base de datos a través de un evento de socket:
CLIENTE:
export default function RegisterForm() { const [user, setUser] = useState(""); const [password, setPassword] = useState(""); const navigate = useNavigate(); const handleSubmit = () => { socket.emit("newuser", { user, password }); navigate("/"); }; return ( <> <div className="join-container"> <header className="join-header"> <h1> <i className="fas fa-smile"></i> Registration Page </h1> </header> <main className="join-main"> <form action="chat.html"> <div className="form-control"> <label htmlFor="username">Username</label> <input type="text" name="username" id="username" value={user} onChange={(e) => setUser(e.target.value)} placeholder="Set username..." required /> </div> <div className="form-control"> <label htmlFor="password">Password</label> <input type="password" name="password" id="pasword" value={password} onChange={(e) => setPassword(e.target.value)} placeholder="Set new password..." required /> </div> </form> <button type="submit" className="btn" onClick={handleSubmit}> Submit </button> </main> </div> </> ); }SERVIDOR:
socket.on("newuser", async (msg) => { try { Users.create({ username: msg.user, password: msg.password, }); } catch (err) { console.log(err); } });MODELO DB:
const Users = db.define("users", { username: { type: DataTypes.STRING, allowNull: false, }, password: { type: DataTypes.STRING, allowNull: false, }, });El problema es que cuando envío la contraseña, almacena caracteres en blanco. Por ejemplo, si se envía la contraseña "1234", en la base de datos veo "1234----------"
"-" son espacios en blanco
¿Cual podría ser el problema?