gpt4 book ai didi

node.js - Sequelize 关联问题,

转载 作者:行者123 更新时间:2023-12-03 22:23:47 27 4
gpt4 key购买 nike

在设置与 sequelize 库的关联时遇到了一些麻烦。不断收到 SequelizeEagerLoadingError:客户端与许可证无关!

这是我的两个模型。

'use strict';

module.exports = (sequelize, DataTypes) => {
const License = sequelize.define('License', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
validate: { isUUID: 4 }
},
client_id: {
type: DataTypes.UUID,
validate: { isUUID: 4 }
}
}, {
classMethods: {
associate: function (models) {
License.belongsTo(models.Client, { foriegnKey: 'client_id' });
}
}
});
return License;
};



'use strict';

module.exports = (sequelize, DataTypes) => {
const Client = sequelize.define('Client', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
name: { type: DataTypes.STRING }
}, {
classMethods: {
associate: function (models) {
Client.hasOne(models.License);
Client.hasMany(models.Event);
Client.hasMany(models.Clips);
}
}
});
return Client;
};


这是我设置的 Controller ,我知道模型工作正常,因为我使用 findbyID() 函数进行了测试。

'use strict';

const db = require('../models/index.js');

class Controller {
constructor(router) {
router.get('/:id', (req, res, next) => {

// db.License.findById(req.params.id).then(function(license) {
// res.status(200).json(license);
// }, function(err) {
// res.status(404).json({
// error: 'License does not exist!'
// });
// });
db.License.findAll({
include: [{ model: db.Client }]
})
.then(function(license) {
res.status(200).json(license);
}, function(err) {
console.log(err);
res.status(404).json({
error: 'License does not exist!'
});
});
});
}
}

module.exports = router => new Controller(router);


帮助会很棒的感觉 super 迷路。 sequelize.sync() 正在运行并且没有抛出任何错误。试图弄清楚我是否有命名问题,可能是因为某些东西需要大写或不大写,但事实并非如此。

最佳答案

我在 Sequelize v4+ 中也面临这种错误。我通过一些小的改动修改了我的模型,希望对你有用。
像这样编写许可证模型

'use strict';

module.exports = function (sequelize, DataTypes) {
const License = sequelize.define('License', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
validate: {isUUID: 4}
},
client_id: {
type: DataTypes.UUID,
validate: {isUUID: 4}
}
});
License.associate = function (models) {
License.belongsTo(models.Client, {foriegnKey: 'client_id'});
};
return License;
};


像这样修改您的客户端,

'use strict';

module.exports = function (sequelize, DataTypes) {
const Client = sequelize.define('Client', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
name: {type: DataTypes.STRING}
});
Client.associate = function (models) {
Client.hasOne(models.License);
Client.hasMany(models.Event);
Client.hasMany(models.Clips);
};

return Client;
};

关于node.js - Sequelize 关联问题,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46436200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com