【发布时间】:2020-10-19 02:14:19
【问题描述】:
发送put 请求时,dailystatus 列会单独更新数据,但updatedAt 列会留下而不更新最新日期/时间。发帖过程中,createdAt 和 updatedAt 列中自动插入了日期和时间,所以在发送 put req 时,我们是否需要发送指令来更新 updatedAt 列,如果需要怎么做?
//这是更新可用性表中的dailystatus和updatedAt列:
`server.js`
app.put('/service/availability', async (req, res) => {
try {
const userEmail = req.query.email;
const dailyStatus = req.body.dailystatus;
var selector = {
where: { email: userEmail }
};
var updateData = {dailystatus:dailyStatus};
const playerDailyStatus = await Availability.update(updateData, selector);
res.status(200).json({ success: true });
} catch (e) {
res.status(500).json({ message: e.message });
}
});
Availability.js
const onUpdate = (dailyinput) =>{
console.log("Here Daily:"+ dailyinput);
const dailyStatus = async () => {
try {
const params = {
email: loginUserEmail,
};
const res = await axios.put('http://localhost:8000/service/availability', { dailystatus: dailyinput }, {params} );
console.log("Dailystatus update:" + res.data.success);
if (res.data.success) {
setDeleteDialog(false);
}
else {
console.log(res.data.message);
setHelperText(res.data.message);
}
} catch (e) {
setHelperText(e.response.data.message);
}
}
dailyStatus();
}
availability.js型号
'use strict';
module.exports = (sequelize, DataTypes) => {
const availability = sequelize.define('availability', {
email: {
type: DataTypes.STRING(100),
allowNull: false
},
dailystatus: {
type: DataTypes.STRING(50),
allowNull: false
},
user_id: {
type: DataTypes.INTEGER(18)
},
id: {
type: DataTypes.INTEGER(10),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
createdAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
}
}, {
timestamps: true,
tableName: 'availability'
});
availability.associate = function (models) {
// associations can be defined here
availability.belongsTo(models.user, {
foreignKey: 'user_id',
sourceKey: 'id',
onDelete: "CASCADE"
});
};
return availability;
}
【问题讨论】:
-
在表定义中使用默认的mysql行为on timestamp initialization。
-
好的,我也将我的availability.js模型添加到问题中,你能检查一下是否看起来不错。
-
只处理创建时间。需要以某种方式合并“ON UPDATE”。
标签: mysql express axios sequelize.js