繁体   English   中英

使用Node-Orm2进行MySQL后端的数据库更新问题

[英]Database update issue using node-orm2 for mysql backend

问题:我正在开发一个Android应用,该应用使用用于MySQL后端的节点orm与nodejs REST服务器进行交互。 在我的服务器上,我具有基于电子邮件验证对用户进行身份验证的功能。 验证成功后,节点orm将获取用户对象,更改已验证的列值并将其保存回去。 但是,执行后更改不会反映在数据库中。 只有当我们再次运行相同的代码时,它才会反映在数据库中

    exports.activateEmail = function(email, callback) {
    log.info('In verifyEmailDao.js, activateEmail module');
    var db = connectionObj.getConnection();
    var Candidate = db.models.jobseeker_id;

  Candidate.find({email : email}, function(err,candidate){
    if(err){
      log.info('cannot find account with email to activate', email);
      callback(false, null);
    }
    else {
      candidate[0].verified = true;
        log.info('candidate email now activated.! status is', candidate[0].verified);
      candidate[0].save(function(error){
        log.info('Email verified any errors?', error);
        callback(true, candidate[0].id);
      });
       }
   });
}

编辑1:

jobseeker_id.js(node-orm模型)

var orm = require('orm');
module.exports = function(db){
  console.log('coming inside candidateId.js');
  var JobSeekerId = db.define('jobseeker_id', {
    id : {type:'serial' , key:true},
    first_name : String,
    last_name : String,
    email : String,
    password : String,
    verified : Boolean
  },{
    validations : {
      email : orm.enforce.unique("Already registered")
    }
  });
}

服务器日志:

{"name":"test-app" "msg":"In verifyEmailDao.js, activateEmail module"}
{"name":"test-app","msg":"candidate email now activated.! status is true"}
{"name":"test-app","msg":"Email verified any errors? null"}
{"name":"test-app","msg":"Email sucessfully activated. Now deleting the entry from verify email link table for candidate id 30}
{"name":"test-app","msg":"In verifyEmailDao.js, deleteRandomLink module"}
{"name":"test-app","msg":"error is---> null"}
{"name":"test-app","msg":"Entry deleted from verify email table as email is activated"}

当我第二次执行代码时,日志中将没有任何更改,但是数据库中的更改将得到反映!

经过2天的db.settings.set('instance.cache', false)之后,我终于通过在db配置文件中添加一条语句db.settings.set('instance.cache', false)来解决了该问题。 尽管我不清楚如何将缓存设置为false来解决数据库更新问题,但这确实可以解决问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM