序列化:inputValue不能是数组或对象

时间:2019-07-18 18:45:00

标签: javascript sequelize.js sequelize-cli

我正在尝试创建具有关联的实例。

我正在传递多个创建的实例以传递其值。

const newTemplate = await productTemplate.create({
        friendlyName,
        isActive: true,
        productCode,
        inscoCode,
    }).then((productTemplate) => {

        // Creating Form Input instance
        formInput.create({
            inputName
        }).then((formInput) => {

            // Creating Form Input Values Instance
            formInputValue.create({
                formInputID: formInput.id,
                inputValue: {
                    [Op.in]: inputValues
                }
            }).then((formInputValue) => {

                // Creating Product Template Instance
                productTemplateInput.create({
                    productTemplateID: productTemplate.id,
                    formInputID: formInput.id,
                    isRequired: true
                }).then((productTemplateInput) => {

                    // Creating Product Template Input Instance
                    productTemplateInputValue.create({
                        productTemplateInputID: productTemplateInput.id,
                        formInputValueID: formInputValue.id,
                        isDefault: true
                    })
                })
            })
        })
    });

这是我的formInputValue模型。

module.exports = function(sequelize, DataTypes) {
    return sequelize.define('formInputValue', {
        id: {
            type: DataTypes.INTEGER,
            allowNull: false,
            primaryKey: true,
            autoIncrement: true,
            field: 'id'
        },
        formInputID: {
            type: DataTypes.INTEGER,
            allowNull: false,
            field: 'formInputID'
        },
        inputValue: {
            type: DataTypes.ARRAY(DataTypes.STRING),
            allowNull: false,
            field: 'inputValue'
        }
    }, {
        tableName: 'formInputValue',
        timestamps: false
    });
};

我想创建该实例,但是当我尝试向inputValues添加值数组时停止运行。有意见吗?

1 个答案:

答案 0 :(得分:0)

为什么在创建中有查询运算符[Op.in]

formInputValue.create({
    formInputID: formInput.id,
    inputValue: {
        [Op.in]: inputValues
    }
})

如果删除该字符串,并且您的inputValues是一个字符串数组(由模型定义),则应创建它们。请参见下文,删除该运算符。

formInputValue.create({
    formInputID: formInput.id,
    inputValue: inputValues
})