Mysql Sequelize model.create不是一个函数

Mysql Sequelize model.create不是一个函数,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我是一个新的续集,并试图为我的新项目设置它。我检查了一些答案,但还是没能克服我的错误。有人能指出如何解决这个问题吗 models/index.js // Database service // Connects to the database const { Sequelize } = require('sequelize'); const path = require('path'); const sequelize = new Sequelize(process.env.DB_NAME,

我是一个新的续集,并试图为我的新项目设置它。我检查了一些答案,但还是没能克服我的错误。有人能指出如何解决这个问题吗

models/index.js

// Database service
// Connects to the database
const { Sequelize } = require('sequelize');
const path = require('path');


const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, {
    host: process.env.DB_HOST,
    dialect: 'mysql',
    logging: process.env.QUERY_LOGGING == "true" ? console.log : false,
    pool: {
        max: 10,
        min: 0,
        acquire: 30000,
        idle: 10000
      }
});


module.exports = sequelize
models/users.js

const sequelize = require("./index")
module.exports = (sequelize, DataTypes) => {
    const User = sequelize.define('Users', {
        id: {
            type: DataTypes.INTEGER,
            primaryKey: true,
            autoIncrement: true
          },
        firstName: {
             type: DataTypes.STRING,
              allowNull: false
         },
        lastName: {
             type: DataTypes.STRING
        },
        profileURL: {
             type: DataTypes.STRING
        },
        emailId: {
             type: DataTypes.STRING,
             allowNull: false 
        },
        passwordHash: {
             type: DataTypes.STRING,
            allowNull: false
        },
        street: {
             type: DataTypes.STRING
        },
        city: {
             type: DataTypes.STRING,
             allowNull: false 
        },
        phone: {
             type: DataTypes.STRING 
        },
        newsletter: {
             type: DataTypes.STRING
         },
        visibility: {
             type: DataTypes.BOOLEAN,
             defaultValue: true
        },

    },{
    });
    return User;
};
最后,我在我的服务文件中导入用户模型,如下所示:


const User = require("../models/users")

const createUser = async(req) => {
    const {firstName, lastName, profileURL, emailId, passwordHash, street, city, phone, newsletter, visibility} = req.body
    const user = await User.create({
        firstName, 
        lastName,
        profileURL, 
        emailId,
        passwordHash,
        street,
        city,
        phone,
        newsletter,
        visibility     
    })
    console.log("new user==>>", user)
    return
}

module.exports = { createUser }

但是,我得到了以下错误

TypeError:User.create不是一个函数

有人能指出我做错了什么吗?我意识到这可能是件小事


谢谢

您导出的函数注册的是
用户
模型,而不是模型本身。因此,您只需将其称为传递
sequelize
实例和
DataTypes
之类的地方,比如
database.js
,在那里您将注册所有模型及其关联,或者直接在
models/index.js

const UserModelConstructor=require(“../models/users”)
const{DataTypes}=require(“sequelize”);
...
const UserModel=UserModelConstructor(sequelize,数据类型);
module.exports={
续集,
用户:UserModel
}
您可以在我的另一个答案中了解如何注册多个模型和关联

请不要忘记删除这条线

const sequelize = require("./index")

来自
models/users.js

非常感谢。我引用了你以前的答案,它成功了