I am doing a post request on my database for user registers & every time the email gets returned as an object with this {"email":"[email protected]"}
instead of this [email protected]
This is the 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"));
});
This is how it looks in my 1st database
14 | Karl | {"email":"[email protected]"} | 0 | 2022-01-18 04:02:03.643
This is how it looks in my 2nd database
12 | $2a$10$WsbEExtpu14ps7aK6AYbxOknedUaLusApL8MlD8lv0lCtknBIuPE. | [email protected]
loginEmail
is an array of results, and each row is an object. You need to get the email
property from that object.
.insert({
email: loginEmail[0].email,
name: name,
joined: new Date(),
})