Estoy haciendo una solicitud de publicación en mi base de datos para registros de usuarios y cada vez que el correo electrónico se devuelve como un objeto con este {"email":"karl@gmail.com"} en lugar de este karl@gmail.com
este es el nodejs
app.post("/register", (req, res) => { const { email, name, password } = req.body; var salt = bcrypt.genSaltSync(10); var hash = bcrypt.hashSync(password, salt); knex .transaction((trx) => { trx .insert({ hash: hash, email: email, }) .into("login") .returning("email") .then((loginEmail) => { return trx("users") .returning("*") .insert({ email: loginEmail[0], name: name, joined: new Date(), }) .then((user) => { res.json(user[0]); }); }) .then(trx.commit) .catch(trx.rollback); }) .catch((err) => res.status(400).json("E-mail is already in use")); });Así es como se ve en mi primera base de datos
14 | Karl | {"email":"karl@gmail.com"} | 0 | 2022-01-18 04:02:03.643Así es como se ve en mi segunda base de datos
12 | $2a$10$WsbEExtpu14ps7aK6AYbxOknedUaLusApL8MlD8lv0lCtknBIuPE. | karl@gmail.comestá recibiendo una decodificación de objeto JSON y obtendrá su correo electrónico. Tampoco entiendo por qué almacena {"email": "karl@gmail.com"} cuando su columna debe etiquetarse como correo electrónico y almacenar el valor karl@gmail.com. ¡La mejor de las suertes!
loginEmail es una matriz de resultados y cada fila es un objeto. Debe obtener la propiedad de email de ese objeto.
.insert({ email: loginEmail[0].email, name: name, joined: new Date(), })