我正在嘗試更新產品的狀態(產品表)。每個產品都有一個statusId,為“1”或“2”。每個產品的 statusId 的默認值為“1”,如果訪問一次路由,則應更改為“2”(反之亦然)。“statusId”和“status”{“id”}應始終相同。當我訪問路由時,數據庫中的“statusId”狀態發生更改,但“status”的 HTTP 響應與數據庫中的實際值不同。響應示例:{ "id": 1, "name": "Drone", "barcode": "123456789", "description": "A drone that can fly", "image": "drone.jpg", "createdAt": "2020-12-22T17:30:15.000Z", "updatedAt": "2020-12-22T17:30:22.841Z", "statusId": 2, "status": { "id": 1, "name": "in", "createdAt": "2020-12-22T17:30:15.000Z", "updatedAt": "2020-12-22T17:30:15.000Z" }}協會:db.status.hasMany(db.product, { foreignKey: {allowNull: false} ,});db.product.belongsTo(db.status, { foreignKey: {allowNull: false}});路線: app .route('/api/product/status/:id') .put([authJwt.verifyToken], controller.updateProductStatus);控制器:exports.updateProductStatus = (req, res) => { // Get product with id and update status only Product.findOne({ where: { id: req.params.id }, include: [ Status ] }) .then(product => { let newStatus = product.statusId === 1 ? 2 : 1; product.update({ statusId: newStatus }) .then( res.status(200).send(product) ) .catch(err => { console.log("Error (Update product): " + err); res.status(404).send(err); }) }) .catch(err => { console.log("Error (find old product): " + err); res.status(404).send(err); });};如何更改代碼以返回“status”的“id”的正確值?
Sequelize.js 返回關聯表的舊值
大話西游666
2024-01-18 15:46:31