【问题标题】:Sequelize throwing invalid input syntax for integer ""续集抛出整数“”的无效输入语法
【发布时间】:2022-01-19 14:18:14
【问题描述】:

我在这里有一个模型定义:

const Tags = sequelize.define('Tag', {
    name: {
        type: DataTypes.TEXT,
        allowNull: false,
    },
    adminOnly: {
        type: DataTypes.BOOLEAN,
        defaultValue: false,
    },
})

还有 2 个端点,它们从数据库 (psql) 创建和获取对象

const tags = await Tags.findAll()

但是这条线失败了。我得到的是

UnhandledPromiseRejectionWarning: SequelizeDatabaseError: invalid input syntax for integer: "tags"

虽然

await Tag.create({name: name, isStock: isStock ?? false})

工作得很好。

当我登录到 psql 控制台并在表上进行选择时,我也没有问题。

【问题讨论】:

    标签: node.js postgresql sequelize.js


    【解决方案1】:

    正如您自己的示例所述,Tag.create 有效,但 Tags.findAll 无效。你试过 Tag.findAll() 吗?我使用 init 来定义模型,但 IIRC 你应该将变量名与表名匹配。

    【讨论】:

    • 是的,我做到了,它并没有改变任何东西。 “Tags”变量只是一个指向模型对象的指针,它保存着表的名称(Tag)。另外,我认为 psql 会自动在表名末尾添加“s”
    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2016-05-18
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    相关资源
    最近更新 更多