使用sequelize的时候,经常会遇到莫名其妙的会抛出一个错误,results.map is not a function
没有堆栈很难排查,今天刚好解决了这个坑,原因是sequelize执行sql时要指定对应的类型,例如:
错误示例:
const sql = "DROP Table myTableName";
await Sequelize.query(sql, { type: Sequelize.QueryTypes.SELECT})
正确示例:
const sql = "DROP Table myTableName";
await Sequelize.query(sql, { type: Sequelize.QueryTypes.DROP})
原因分析:如果你执行了query类型是SELECT,那么sequelize就会去遍历查询的结果。 而执行drop后是没有返回结果的,这就导致了无法进行遍历,就会提示results.map is not a function这个报错了。