我正在我的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(); }) }) }
我想设置' 已确认 '这列' 令牌 '如果令牌匹配,则为1。 当前默认值为0。 有人知道密码吗? 我尝试使用sequelize.query,但它不是函数。
而不是像这样使用原始查询:
Sequelize.query("UPDATE partners WHERE token='"+token+"' SET confirmed=1")
你应该使用连续的方式,这样你可以更好地处理它。
更好的方法是:
但是用你的方法你不能做这样的事情。
干得好:
partner.update({ 'confirmed' : 1 },{ where : { 'token' : token , 'confirmed' : 0 }}) .then(...) // handle update .catch(...); // handle error
删除:
partner.destroy({ where : { 'token' : token , 'confirmed' : 1 }});