I want to insert a data into my database based on "where" condition, but I couldn't success.
Objection.js :
const User = require('../../database/models/user');
router.route('/register')
.get((req,res,next)=>{
res.render('user/register')
})
.post((req,res,next)=>{
const {email, password} = req.body;
const user = User.query().where('email', '=', email);
if(user){
console.log('user exists');
// do something
}
if(!user){
console.log('user doesnt exist');
// do something
}
})
In any case, it prints "user exists". I think its because "user" returns a promise.
I tried also this :
const User = require('../../database/models/user');
router.route('/register')
.get((req,res,next)=>{
res.render('user/register')
})
.post((req,res,next)=>{
const {email, password} = req.body;
User.query().where('email', '=', email).then(row => {
if(row.length == 1){
console.log('user exists');
}
if(row.length == 0){
User.query().insert({
email : email,
password : password
})
}
});
})
But it doesn't insert the data to the database. I don't know how can i insert data into my database based on a condition. Do you know how can i fix it? Thank you!
You are missing .then or await from the insert query
This should work: