NodeJS - 续集更新问题

时间:2015-02-03 21:30:04

标签: mysql node.js sequelize.js

我在更新方法方面遇到了问题。

我这样做:

// 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参数是否是有效参数。是的,它是 - 我发送一个对象并收到一个对象。

有人能帮助我吗?我尝试了旧方法,新方法,阅读帖子,但没有。

修改 我找到了我错的地方。我应该定义我想要更新/插入的所有字段。 由于我的英语,我不明白文档中的define函数。我认为当你定义字段时,你将重新创建表结构,但现在我意识到,如果运行sync()方法会发生这种情况。

1 个答案:

答案 0 :(得分:0)

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