运行npm start提示TypeError: sequelize.sync is not a function求助
报错根因
你在server.js中错误引入了sequelize核心包,此时拿到的sequelize是Sequelize构造类本身,而非你在单独配置文件中已经完成初始化的数据库连接实例。sync是实例方法,挂载在初始化后的连接对象上,构造类本身没有这个方法,因此触发类型错误。
修复方案
修改server.js中的Sequelize引入逻辑:
- 替换原有错误引入代码
原有错误代码:
// Import Sequelize Connection const sequelize = require('sequelize');
替换为你的Sequelize连接配置文件路径(示例假设你的配置文件放在./config/connection.js,如果你的文件存放路径不同,请替换为实际相对路径):
// Import Sequelize Connection const sequelize = require('./config/connection.js');
- 重启项目验证即可,其余代码无需改动。
注意事项
- 生产环境请去掉
sync配置中的force: true参数,避免每次启动项目自动清空所有数据库表数据 - 若调整配置文件路径后仍报错,可打印
sequelize变量确认是否为实例对象:console.log(sequelize instanceof require('sequelize')),正常输出应为true
内容的提问来源于stack exchange,提问作者hannahatl
相关产品推荐
相关产品推荐

