我已经创建了一个用户模型并将其导出到控制器中,但是在.create()函数期间似乎无法正常工作。显示的错误是TypeError:userModel.create不是一个函数,它应该已经创建了表
'use strict';
module.exports = function(sequelize, DataTypes) {
const User = sequelize.define('user', {
email: {
type: DataTypes.STRING,
defaultValue:'',
allowNull:false,
validate: {
notNull: true,
}
},
name:{
type:DataTypes.STRING,
defaultValue:'',
allowNull:true
},
city:{
type:DataTypes.STRING,
defaultValue:'',
allowNull:true
}
},
{
freezeTableName: true,
}
);
return User;
};
'use strict';
module.exports = function(sequelize, DataTypes) {
const User = sequelize.define('user', {
email: {
type: DataTypes.STRING,
defaultValue:'',
allowNull:false,
validate: {
notNull: true,
}
},
name:{
type:DataTypes.STRING,
defaultValue:'',
allowNull:true
},
city:{
type:DataTypes.STRING,
defaultValue:'',
allowNull:true
}
},
{
freezeTableName: true,
}
);
return User;
};
我也尝试过const userModel = require('../../../models/user').User
,但是没有运气
下面是提供的模型的用户控制器
"use strict";
const userModel = require('../../../models/user')
saveUserProfile(req,res){
userModel.create(req.body).then(user => {
console.log("User Data", user);
res.send({ data: user })
});
}
module.exports = new user();
答案 0 :(得分:0)
您的代码正在导出函数,而不是User
对象。因此,您需要使用控制器中的依赖项来调用该函数才能调用userModel.create
。
我假设您的控制器知道seqeulize
和DataTypes
,否则您将需要导入它们并将它们传递,或直接将import
放入您的model
中。
使用下面的require
语句,并从控制器中注入sequelize
和DataTypes
。
const userModel = require('../../../models/user')(sequelize, DataTypes).User