You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize报错:User.create is not a function 及模型导入问题

问题解决:Sequelize中Customer.create is not a function及相关错误

问题原因

你直接导入了customer.js模型文件,但该文件导出的是模型初始化函数,并非已和Sequelize实例绑定、具备完整方法的模型类。只有通过models/index.js导出的模型,才是完成初始化、可调用create等方法的可用模型。

解决方案

修改控制器的模型导入逻辑,从models/index文件导入已初始化的Customer模型:

修正后的控制器代码

// 从models/index导出的db对象中解构Customer模型
const { Customer } = require('../../models');

module.exports = {
    async store (req, res) {
        try {
            const { name, email, password, country, city, state, address, postalCode } = req.body;

            const customer = await Customer.create({ name, email, password, country, city, state, address, postalCode });
            
            return res.status(200).json(customer);
        } catch (err) {
            console.log(err);
            return res.status(500).json({ error: err.message });
        }
    }
}

补充说明

  • models/index.js的核心作用是自动遍历加载所有模型文件,传入Sequelize实例和DataTypes完成模型初始化,最终将所有可用模型挂载到db对象统一导出。
  • 直接导入customer.js时,你拿到的是module.exports = (sequelize, DataTypes) => { ... }这个初始化函数,未传入必要参数的情况下,解构{ Customer }会得到undefined,进而触发Cannot read properties of undefined (reading 'create')错误。

内容的提问来源于stack exchange,提问作者Routfin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:10:28