Запрос Sequelize для подсчета и обновления данных, если значение count возвращает 1 - PullRequest
0 голосов
/ 22 мая 2018

Я строю систему регистрации в моем приложении nodejs.Я использую Sequelize JS в качестве ORM.Это мой контроллер

exports.activateaccount=function(req,res,next){
var token=req.params.token;
indexmodel.activateemail(token,function(err,result){
    if(err) throw err;
    else{
        res.send('Activation Completed');
    }
})
 }

Я беру токен и отправляю его модели:

exports.activateemail=function(token,callback){
partner.count({where:{token:token}}).then((partner)=>{
    Sequelize.query("UPDATE partners WHERE token='"+token+"' SET confirmed=1").then(partner=>{
        callback();
    })
})
  }

Я хочу установить ' подтвержденный ' столбец этого ' token 'как 1, если токен совпадает.В настоящее время значение по умолчанию равно 0. Кто-нибудь знает код этого.Я пытался использовать Sequelize.query, но это не функция.

1 Ответ

0 голосов
/ 22 мая 2018

Вместо использования необработанного запроса, например:

Sequelize.query("UPDATE partners WHERE token='"+token+"' SET confirmed=1")

Вы должны использовать способ Sequelize, чтобы вы могли лучше справиться с ним.

Лучшими средствами:

  1. В будущем вы можете перейти на любой диалект
  2. Вы можете использовать крючки
  3. И другие ...

Но с помощью метода, который вы использовали, вы не можете делать такие вещи.

Вот, пожалуйста:

partner.update({ 'confirmed' : 1 },{ where : { 'token' : token , 'confirmed' : 0 }})
.then(...) // handle update
.catch(...); // handle error

Для удаления:

partner.destroy({ where : { 'token' : token , 'confirmed' : 1 }});
...