问题描述
在控制器/endUserAuth 文件中,当我使用 include 从关联表中获取数据时,我收到错误 End_user 未定义。End_user 是我必须获取数据的另一种模型。在 sequelize 的文档中,我发现这是要获取的相关数据也称为 Eager Loading..我已经粘贴了我的代码。
模型/用户验证
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize,DataTypes) => {
class End_User_authorization extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
End_User_authorization.belongsTo(models.End_user,{
foreignKey:'userId',onDelete:'CASCADE'
});
End_User_authorization.hasOne(models.End_User_authentication,{
foreignKey:'endUserAuthId'
})
}
};
End_User_authorization.init({
userId: DataTypes.INTEGER,authCode: DataTypes.STRING,regdeviceid: DataTypes.INTEGER,regDeviceName: DataTypes.STRING,expiry: DataTypes.DATE,ipAddress: DataTypes.STRING
},{
sequelize,modelName: 'End_User_authorization',});
return End_User_authorization;
};
模型/最终用户
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize,DataTypes) => {
class End_user extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
End_user.hasOne(models.End_User_authorization,{
foreignKey:'userId'
});
End_user.hasOne(models.End_User_authentication,{
foreignKey:'endUserId'
});
End_user.hasOne(models.AllowedIp,{
foreignKey:'userId'
});
End_user.hasMany(models.Subscription,{
foreignKey:'userId'
})
}
};
End_user.init({
firstName: DataTypes.STRING,middleName: DataTypes.STRING,lastName: DataTypes.STRING,nickName: DataTypes.STRING,email: DataTypes.STRING,mobileNumber: DataTypes.STRING,bloodGroup: DataTypes.STRING,fatherName: DataTypes.STRING,motherName: DataTypes.STRING,fingerPrint: DataTypes.BLOB,bForm: DataTypes.STRING
},modelName: 'End_user',});
return End_user;
};
控制器/endUserauth
const db = require('../config/database.js');
const EnduserAuth = db.endUserauth;
exports.create = (req,res) => {
EnduserAuth.create({
userId:req.body.userId,authCode:req.body.authCode,regdeviceid:req.body.regdeviceid,regDeviceName:req.body.regDeviceName,expiry:req.body.expiry,ipAddress:req.body.ipAddress,}).then(auth => {
res.send(auth);
}).catch(err => {
res.send(err.message);
});
};
exports.findAll = (req,res) => {
EnduserAuth.findAll({
include: {
model: End_user,}
}).
then(auth => {
res.send(auth);
}).catch(err => {
res.send(err.message)
});
};
exports.findById = (req,res) => {
EnduserAuth.findByPk(req.params.endUserAuthId).
then(auth => {
res.send(auth)
}).catch(err => {
res.send(err.message);
})
};
exports.update = (req,res) => {
const id = req.params.endUserAuthId;
EnduserAuth.update({
userId:req.body.userId,},{where :{id: req.params.endUserAuthId}},).then(()=> {
res.status(200).send("updated successfully with id = " + id);
}).catch(err => {
res.send(err.message);
})
};
exports.delete = (req,res) => {
const id = req.params.endUserAuthId;
EnduserAuth.destroy({
where: { id: id }
}).then(() => {
res.status(200).send('deleted successfully with id = ' + id);
}).catch(err => {
res.send(err.message);
})
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)