mysql - Sequelize : TypeError: Converting circular structure to JSON

标签 mysql node.js sequelize.js associations

我有 OrdersDisplay 模型。协会是这样运作的

Display.associate = models => Display.hasOne(models.Orders);

orders 表具有 displayId 引用,并且我的设计中没有任何循环。但是我在下面收到此错误。

TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'Socket'
    |     property '_writableState' -> object with constructor 'WritableState'
    |     property 'afterWriteTickInfo' -> object with constructor 'Object'
    --- property 'stream' closes the circle
    at JSON.stringify (<anonymous>)

如果我不包含如下所示的 dbDisplay,错误就会消失。

export const getAllOrders = async (req, res) => {
    console.log("GET ALL ORDERS")
    let orders = await dbOrders.findAll({
        include: [{
            model: dbDisplay,
        }]
    }).catch(error => res.status(400).send(error));
    try {
        res.status(200).send(orders) // error here

    } catch (err) {
        console.log(err)
    }
}

最佳答案

不要尝试发送模型实例本身。使用他们的 get({ plain: true }) 方法来获取普通对象:

export const getAllOrders = async (req, res) => {
    console.log("GET ALL ORDERS")
    try {
        const orders = await dbOrders.findAll({
        include: [{
            model: dbDisplay,
        }]
        })
        res.status(200).send(orders.map(x => x.get({ plain: true })))
    } catch (err) {
        console.log(err)
        res.status(400).send(err) 
    }
}

关于mysql - Sequelize : TypeError: Converting circular structure to JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71090496/

相关文章:

javascript - 在 where 条件下使用 "续行包装列

mysql - 通过tunnel-ssh使用sequelize访问远程数据库时出错

php - Doctrine2,ManyToMany 关系 => SQLSTATE[42000] : Syntax error or access violation

node.js - 在 JavaScript 中将八位字节流数据保存为 PDF 文件

javascript - 尝试使用 Google API Node.js 客户端时出现 "Module not found"错误

node.js - 在 Node.js 中将 gzip 压缩的 http 请求正文解压缩为 json

mysql - 使用 Sequelize 计算关联条目

mysql - 将模式和 SP 从 informix 迁移到 mysql

MySQL 总结经文和 n 个最大的结果

mysql - 有效地从多个 rails 模型创建 "feed"?