Mysql Sequelize model.create不是一个函数
我是一个新的续集,并试图为我的新项目设置它。我检查了一些答案,但还是没能克服我的错误。有人能指出如何解决这个问题吗 models/index.jsMysql 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,
// 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
非常感谢。我引用了你以前的答案,它成功了