mysql的sequelize抛出Assert错误

exdqitrt  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(356)

我正在使用nodejs、sequelize和danmysql数据库(10.1.21-mariadb)构建一个api。当我尝试做一些修补(更新数据)时,它抛出Assert错误,但在post(插入数据)时效果很好。
这是我的补丁代码:

const express = require('express');
const router = express.Router();

const brandModel = sequelize.define('tbl_brand', {
    brand_name: {
        type: Sequelize.STRING,
        allowNull: false
    },
}, {
        freezeTableName: true,
});

router.patch('/:id', (req, res, next) => {
    const id = req.params.id;
    const newModel = {
        brand_name: req.body.brand_name
    };

    sequelize.authenticate().then(() => {
        const promise = brandModel.update(newModel, {brand_id: id});
        return promise.then(function(item){
            res.status(201).json({
                success: true,
                result: item
            });
        });
    })
    .catch(err => {
        res.status(500).json({
            success: false,
            result: err
        });
    });
});

我使用“ Postman ”并按如下方式访问它:

http://localhost:3000/brand/1

使用原始json:

{
    "brand_name" : "Adidasssss"
}

结果如下:

{
    "success": false,
    "result": {
        "generatedMessage": false,
        "name": "AssertionError [ERR_ASSERTION]",
        "code": "ERR_ASSERTION",
        "expected": true,
        "operator": "=="
    }
}

有什么问题吗?

x7yiwoj4

x7yiwoj41#

没有关系。。。我很粗心,更新了一个名为brandmodel的空示例。应该先搜索它,然后再进行更新

相关问题