发起GET请求时出现TypeError: Converting circular structure to JSON错误
问题解决方案
针对"TypeError: Converting circular structure to JSON"错误
- 排查接口返回对象:该错误源于要序列化的对象存在循环引用(比如ORM模型实例包含双向关联的对象)。
- 序列化处理方案:
- 若使用ORM框架(如Sequelize),查询时添加
{ raw: true }参数,直接返回纯数据对象而非模型实例。 - 手动剥离循环引用属性:只返回业务需要的字段,排除关联对象的反向引用。
- 自定义JSON序列化逻辑:
// 示例:过滤掉引发循环的关联属性 const safeData = JSON.stringify(yourData, (key, val) => { if (key === '反向关联属性名') return undefined; return val; }); res.send(safeData);
- 若使用ORM框架(如Sequelize),查询时添加
针对迁移后未生成.db3文件问题
- 检查数据库配置文件:确认server文件夹内的数据库配置中,SQLite的存储路径是否正确,路径对应的目录是否存在且有读写权限。
- 验证迁移命令执行:确保迁移命令指向了正确的配置文件,比如使用
sequelize-cli时,.sequelizerc文件中的配置路径是否匹配实际项目结构。 - 查看迁移执行日志:执行迁移时留意终端输出,是否有路径错误、权限不足等报错信息。
- 排除内存数据库配置:若配置中使用
':memory:'作为SQLite路径,数据库仅存在于内存中,不会生成本地文件,需修改为具体的文件路径(如./data/esamigram.db3)。
内容的提问来源于stack exchange,提问作者Pepe
相关产品推荐
相关产品推荐

