sequelize.js - 通过关联更新 Sequelize

标签 sequelize.js

我正在尝试修改“时间表”表的 2 个字段,但我不能。我有出现的错误。我不明白:

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

这是方法:

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
https://momentjs.com/

例子:

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

祝你好运!

关于sequelize.js - 通过关联更新 Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52168126/

相关文章:

mysql - 使用sequelize和docker-compose从 Node 应用程序连接到MySQL DB

sequelize.js - Sequelize - 包含带有字符串名称的嵌套属性/关系

database - 如何通过id关联表

javascript - Sequelize 关联和 api 路由。无法从数据库检索信息

mysql - 未定义序列

node.js - Sequelize - 使用不是 Sequelize.Model 子类的东西调用

javascript - 迁移到 V5 后序列化记录问号而不是值

node.js - 当我在表中添加新列时,Sequelize 未更新

mysql - 使用 HAVING 子句、COUNT 聚合和 GROUP BY 与 Sequelize 同时过滤数据

node.js - 同步 sequelize.sync() 还是不同的方式?