【问题标题】:Objection.js - insert data based on "where" conditionObjection.js - 根据“where”条件插入数据
【发布时间】:2020-10-02 15:11:30
【问题描述】:

我想根据“where”条件将数据插入到我的数据库中,但我没有成功。

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
    }
})

在任何情况下,它都会打印“用户存在”。我认为这是因为“用户”返回了一个承诺。

我也试过这个:

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
            })
        }
    });
})

但它不会将数据插入数据库。 我不知道如何根据条件将数据插入到我的数据库中。你知道我该如何解决吗? 谢谢!

【问题讨论】:

  • 你在用sequlize吗?

标签: javascript node.js knex.js objection.js


【解决方案1】:

插入查询中缺少 .then 或 await

这应该可行:

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();
            })
        }
    });
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多