【问题标题】:NodeJS - Sequelize updating issueNodeJS - 续集更新问题
【发布时间】:2015-02-05 00:50:54
【问题描述】:

我有更新方法的问题。

我正在这样做:

// Char is outside the object where update method is...
Char = db.define('characters', {}, {
    tableName: 'characters',
    updatedAt: false,
    createdAt: false
});

//... part of the whole object
update: function ( columns, callback ) {

    Char.update( columns, { where: { id: this.get('char_id') } } )
    .complete( function ( err, res ) {
        f.log(res, 'd');
    });
},

当我将 updatedAt 定义为 false 时,更新完全停止工作,我不知道如何防止这种情况,除了在我的数据库中添加一列。它让我“查询为空”。 所以我尝试将updatedAt定义为'created_at'——我表中的一个现有列,然后更新工作了,但根本没有。查询仅更新带有时间戳的“created_at”,而不是我的首选列。

我在控制台中收到的示例:

Executing (default): UPDATE characters SET created_at='2015-02-03 21:03:00' WHERE id='1'

应该是:

Executing (default): UPDATE characters SET health = ..., created_at='2015-02-03 21:03:00' WHERE id='1'

我调试columns参数是否为有效参数。是的,它是 - 我发送一个对象并接收一个对象。

谁能帮帮我。我尝试了旧方法,新方法,阅读帖子,但没有。

编辑: 我发现我错了。我应该定义我想要更新/插入的所有字段。 由于我的英语,我不理解文档中的定义功能。我以为当你定义字段时你会重新创建你的表结构,但现在我意识到,如果运行 sync() 方法就会发生这种情况。

【问题讨论】:

  • 欢迎来到 Stack Overflow!既然您找到了答案并且已经过去了 8 小时,请将其作为此问题的答案发布。

标签: mysql node.js sequelize.js


【解决方案1】:

我发现我错了。我应该定义我想要更新/插入的所有字段。由于我的英语,我不理解文档中的定义功能。我以为当你定义字段时你会重新创建你的表结构,但现在我意识到,如果运行 sync() 方法就会发生这种情况。

【讨论】:

    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 2023-01-30
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多