Node.js新手求助:Sequelize查询PostgreSQL表报错解决方案
解决Sequelize找不到PostgreSQL表的问题
嘿,我来帮你搞定这个问题!你遇到的报错是因为Sequelize的默认表名规则和你实际的表名不匹配导致的。
问题原因
Sequelize默认会把你定义的模型名称自动复数化,作为对应的数据库表名。你定义的模型是apisList,它自动把表名处理成了apisLists,但你的数据库里实际存在的是apiList表,所以就会抛出relation "apisLists" does not exist的错误。
解决方案
最简单直接的办法就是在定义模型时显式指定实际的表名,在define方法的第三个参数里添加tableName配置:
const apisListModel = sequelize.define('apisList', {}, { tableName: 'apiList' // 这里指定你数据库中真实的表名 });
另外,我注意到你的then回调里只做了JSON.stringify(data)但没有输出结果,你可以加上console.log来查看返回的数据:
apisListModel.findAll().then((data)=>{ console.log(JSON.stringify(data, undefined, 2)); },(e)=>{ console.log(e); });
这样修改后,Sequelize就会正确访问你的apiList表,而不是去找自动生成的复数表名啦!
内容的提问来源于stack exchange,提问作者Sundeep Badhotiya
相关产品推荐
相关产品推荐

