我正在嘗試更新產(chǎn)品的狀態(tài)(產(chǎn)品表)。每個產(chǎn)品都有一個statusId,為“1”或“2”。每個產(chǎn)品的 statusId 的默認(rèn)值為“1”,如果訪問一次路由,則應(yīng)更改為“2”(反之亦然)?!皊tatusId”和“status”{“id”}應(yīng)始終相同。當(dāng)我訪問路由時,數(shù)據(jù)庫中的“statusId”狀態(tài)發(fā)生更改,但“status”的 HTTP 響應(yīng)與數(shù)據(jù)庫中的實際值不同。響應(yīng)示例:{ "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" }}協(xié)會: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 返回關(guān)聯(lián)表的舊值
大話西游666
2024-01-18 15:46:31