我已经创建了一个用户模型并将其导出到 Controller 中,但是在 .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
但没有运气
以下是所提供模型的用户 Controller
"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();
最佳答案
您的代码正在导出函数,而不是User
对象。因此,您需要使用 Controller 内的依赖项来调用该函数,以便调用 userModel.create
。
我假设您的 Controller 了解 seqeulize
和 DataTypes
,否则您需要导入它们并传递它们,或者直接在您的模型
中导入
它们。
依赖注入(inject)(某种程度上)
使用下面的 require
语句并从 Controller 注入(inject) sequelize
和 DataTypes
。
const userModel = require('../../../models/user')(sequelize, DataTypes).User
关于node.js - 无法通过提供 req.body 创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56871134/