Javascript Objective.js-根据“插入数据”;其中;条件

Javascript Objective.js-根据“插入数据”;其中;条件,javascript,node.js,knex.js,objection.js,Javascript,Node.js,Knex.js,Objection.js,我想根据“where”条件将数据插入数据库,但未能成功 反对意见: 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

我想根据“where”条件将数据插入数据库,但未能成功

反对意见:

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
    }
})
在任何情况下,它都会打印“用户存在”。我认为这是因为“用户”返回了一个承诺

我也试过:

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
            })
        }
    });
})
但它不会将数据插入数据库。 我不知道如何根据条件将数据插入数据库。你知道我怎么修吗?
谢谢大家!

您丢失了。然后从insert查询中选择或等待

这应该起作用:

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
            }).then(result => {
              res.status(204).send();
            })
        }
    });
})

您丢失了。然后从insert查询中删除或等待

这应该起作用:

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
            }).then(result => {
              res.status(204).send();
            })
        }
    });
})

你在用Sequalize吗?你在用Sequalize吗?