Sequelize.js 通过关联更新Sequelize

Sequelize.js 通过关联更新Sequelize,sequelize.js,Sequelize.js,我试图修改我的“时间表”表的两个字段,但我不能。我出现了一些错误。我不明白: 此表中有多个字段,但我只想更改开始日期和结束日期 方法如下: exports.updateWorkingDates = (req, res) => { Coach.find({ where: { id: req.params.coachId }, include: [{ model: Schedule, attributes: ['start

我试图修改我的“时间表”表的两个字段,但我不能。我出现了一些错误。我不明白:

此表中有多个字段,但我只想更改开始日期和结束日期

方法如下:

exports.updateWorkingDates = (req, res) => {
Coach.find({
    where: {
        id: req.params.coachId
    },
    include: [{
        model: Schedule,
        attributes: ['start_date', 'end_date']
    }]
}).then(coach => {
    const updatedSchedule = {
        start_date: req.body.start_date,
        end_date: req.body.end_date ? req.body.end_date : null
    }
    coach.setSchedule(updatedSchedule).then(() => {
        res.status(200).json({
            message: "Modified."
        })
    }).catch(err => {
        console.log(err)
    })
    })
}
错误:

Error: Invalid value { start_date: '2018-07-07' }
模型:

   module.exports = (sequelize, DataTypes) => {
  var Schedule = sequelize.define('Schedule', {
    start_date: DataTypes.DATEONLY,
    end_date: DataTypes.DATEONLY,
    monday: DataTypes.STRING(24),
    tuesday: DataTypes.STRING(24),
    wednesday: DataTypes.STRING(24),
    thursday: DataTypes.STRING(24),
    friday: DataTypes.STRING(24),
    saturday: DataTypes.STRING(24),
    sunday: DataTypes.STRING(24)
  }, {
    freezeTableName: true
  });

  Schedule.associate = function (models) {
    Schedule.belongsTo(models.Coach, {
      foreignKey: 'fk_id_coach'
    })
  };
  return Schedule;
};

谢谢:)

有必要将日期设置为特定格式

应该是使用moment.js

例如:

const updatedSchedule = {
    start_date: moment(req.body.start_date),
    end_date: req.body.end_date ? moment(req.body.end_date) : null
}
力矩格式:

moment().format('MMMM Do YYYY, h:mm:ss a'); // September 4th 2018, 5:20:54 pm
moment().format('dddd');                    // Tuesday
moment().format("MMM Do YY");               // Sep 4th 18
moment().format('YYYY [escaped] YYYY');     // 2018 escaped 2018
moment().format();                          // 2018-09-04T17:20:54+03:00

祝你好运

我创建了这个,它可以工作:

Schedule.update({
    start_date: req.body.start_date,
    end_date: req.body.end_date ? req.body.end_date : null,
}, {
    where: {
        fk_id_coach: req.params.coachId
    }
}).then(() => {
    res.status(200).json({
        message: "Dates modifiées."
    })
}).catch(err => {
    res.status(500).json({
        error: err
    })
})

我添加了矩,但仍然有相同的错误:/Yep,`start_date:矩(req.body.start_date).format('yyyyy-MM-DD')
,但仍然有相同的错误:
error:Object处的无效值{start_date:'2018-07-07',end_date:'2018-07-30'}。escape`你在使用mysql吗?