【问题标题】:Sequelize update change the pre-initialized variableSequelize update 改变预初始化变量
【发布时间】:2017-02-28 12:09:48
【问题描述】:

我正在尝试在更新之前将续集实例保存到变量中。但是在更新之后,旧变量也会更新到新的sequelize实例中,这使得变量'oldRequest'前后的.description不同。

var oldRequest = request; // HUGE BUG HERE, OLD REQUEST IS ALSO MODIFIED AS REQUEST IS MODIFIED
        console.log("before " + oldRequest.description);
        attributes.lastUpdater = req.user.get('firstName') + " " + req.user.get('lastName');
        request.update(attributes).then(function(updatedRequest) {
            console.log("after " + oldRequest.description);
            send_update_email(oldRequest ,updatedRequest, req.user.get('email')).then(function() {

【问题讨论】:

    标签: node.js sqlite sequelize.js


    【解决方案1】:

    问题是oldRequest 实际上只是引用同一个对象request。请参阅此问题以获得深入的解释:Javascript pointer/reference craziness. Can someone explain this?

    如果您需要保存 description,请尝试使用克隆:(有关详细信息,请参阅此答案:Cloning an Object in Node.js

    var extend = require('util')._extend;
    var oldRequest = extend({}, request);
    ...
    

    【讨论】:

      猜你喜欢
      • 2012-06-15
      • 2012-10-19
      • 2016-11-03
      • 2017-03-20
      • 2016-07-31
      • 2010-12-30
      • 2017-09-11
      • 2016-05-28
      • 1970-01-01
      相关资源
      最近更新 更多