Node.js Sequelize-与includes关联的问题 发生了什么事?
我有一条返回应用程序中所有车辆的Node.js Sequelize-与includes关联的问题 发生了什么事?,node.js,sequelize.js,Node.js,Sequelize.js,我有一条返回应用程序中所有车辆的车辆/公告路线,我有汽车,摩托车,农业机械,以及农具。我的问题是当涉及到从农业机器和农具返回数据时 续集查询 Annoucement.findAll({ 包括:[{ 型号:安诺汽车, 包括:[{ 型号:Itens,, 包括:[{ 型号:农业机械, }], 包括:[{ 型号:汽车,, 包括:[{ 型号:选装件, //as:‘期权’, 包括:[{ 型号:可选, }] }, { 型号:车辆具有以下特点:, 包括:[{ 型号:功能, }], //as:‘期权’, }, {
车辆/公告
路线,我有汽车,摩托车,农业机械,以及农具。我的问题是当涉及到从农业机器和农具返回数据时
续集查询
Annoucement.findAll({
包括:[{
型号:安诺汽车,
包括:[{
型号:Itens,,
包括:[{
型号:农业机械,
}],
包括:[{
型号:汽车,,
包括:[{
型号:选装件,
//as:‘期权’,
包括:[{
型号:可选,
}]
}, {
型号:车辆具有以下特点:,
包括:[{
型号:功能,
}],
//as:‘期权’,
}, {
型号:Fipe,
包括:[{
型号:燃料,
}]
}]
}],
}, {
型号:车辆图像
}, {
型号:人
}]
}],
订单:[
['id','DESC']
],
})。然后((结果)=>{
返回res.json({success:true,result:result})
}).catch((错误)=>{
返回res.status(400).json(err)
});
他带着一辆公告车
但当它是农业机具或农业机器时,它会将我返回到车辆到达的位置,并显示车辆:null
的方式
我试过什么?
我试图在下面的association:AnnouncementVehicle.associations.iten
中添加类似的内容
包括:[{association:AnnouncementVehicle.associations.agricultural\u machine}]
。
返回与上面输入的相同的JSON
我注意到了什么?
我意识到它总是返回最后一个关联,可能是我试图对从同一个表开始的两个表执行的两个include。我将农业机械的关联放在车辆关联之后,并返回农业机械:null
和未返回的车辆
农业机械模型
module.exports=函数(续集,数据类型){
const agricultural\u machine=suquelize.define('agricultural\u machine'{
农业机器识别码:{
类型:DataTypes.INTEGER(11).UNSIGNED.ZEROFILL,
allowNull:错,
primaryKey:没错,
参考资料:{
型号:“itens”,
键:“id”
},
参考资料:{
模式:“农业机具”,
关键字:“农业机具id”
},
参考资料:{
型号:“拖拉机”,
钥匙:“拖拉机识别码”
}
},
工作时间:{
类型:DataTypes.STRING(45),
阿洛诺:是的
},
年份:{
类型:DataTypes.INTEGER,
allowNull:错误
},
说明:{
类型:DataTypes.TEXT,
阿洛诺:是的
},
品牌\农业\机器\标识:{
类型:DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
allowNull:错,
primaryKey:没错,
参考资料:{
型号:“品牌农业机械”,
键:“id”
}
},
型号\u农业\u机器\u id:{
类型:DataTypes.INTEGER,
allowNull:错,
primaryKey:没错,
参考资料:{
型号:“型号农业机械”,
键:“id”
}
}
}, {
表名:“农业机械”,
时间戳:false
});
农业机械协会=(型号)=>{
农业机械.hasOne(models.tractor,{foreignKey:'tractor_id'});
农业机械.hasOne(models.agricultural_implement,{foreignKey:'agricultural_implement_id'});
农业机械.belongsTo(models.itens,{foreignKey:'agricultural_machine_id');
农业机械.belongsTo(models.brand农业机械,{foreignKey:'brand农业机械\u id'});
农业机器.belongsTo(models.model农业机器,{foreignKey:'model农业机器id});
//公告_vehicles.belongsTo(models.person,{foreignKey:'personId'});
//公告车辆。有许多(模型。公告照片,{foreignKey:'Announces_id',constraints:false});
};
返回农业机械;
};
伊滕斯模型
module.exports=函数(续集,数据类型){
const itens=sequelize.define('itens'{
身份证:{
类型:DataTypes.INTEGER(11).UNSIGNED.ZEROFILL,
allowNull:错,
primaryKey:没错,
自动递增:真
},
类型:{
类型:“集合('1'、'2'、'3'、'4')”,
allowNull:错,
默认值:“1”
}
}, {
tableName:'itens',
时间戳:false
});
itens.associate=(型号)=>{
itens.hasOne(models.vehicles,{foreignKey:'item_id'});
hasOne(models.agricultural_machine,{foreignKey:'agricultural_machine_id'});
}
返回itens
};
公告车型
module.exports=函数(续集,数据类型){
const announcement\u vehicles=suquelize.define('announcement\u vehicles'{
IDANNOUN车辆:{
类型:DataTypes.INTEGER(11).UNSIGNED.ZEROFILL,
allowNull:错,
primaryKey:没错,
参考资料:{
模型:“公告”,
键:“id”
}
},
价格:{
类型:DataTypes.DECIMAL,
阿洛诺:是的
},
视频:{
类型:DataTypes.STRING(45),
阿洛诺:是的
},
说明:{
类型:DataTypes.TEXT,
阿洛诺:是的
},
人物:{
类型:DataTypes.INTEGER(11).UNSIGNED.ZEROFILL,
阿洛诺:是的,
{
"success": true,
"result": [
{
"id": 311,
"active": true,
"announcement_vehicle": {
"idAnnouncementVehicles": 311,
"price": null,
"video": null,
"description": null,
"personId": 1,
"itemId": 297,
"payed": false,
"plans_id": null,
"createdAt": "2020-05-20T19:05:18.000Z",
"updatedAt": "2020-05-20T19:05:18.000Z",
"iten": {
"id": 297,
"type": "1",
"vehicle": {
"item_id": 297,
"mileage": null,
"license": null,
"new": 0,
"armoured": 0,
"fuel_id": 1,
"cambium_id": 1,
"color_id": 1,
"door_id": 1,
"fipe_id": 1,
"createdAt": "2020-05-20T19:05:18.000Z",
"updatedAt": "2020-05-20T19:05:18.000Z",
"optional_has_vehicles": [
{
...
}
],
"vehicles_has_features": [
{
...
"feature": {
...
}
},
],
"fipe": {
....
"fuel": {
"id": 2,
"description": "Gasolina"
}
}
}
},
"announcemment_photos": [],
"person": {
...
}
}
},
{
"id": 306,
"active": true,
"announcement_vehicle": {
"idAnnouncementVehicles": 306,
"price": "500.000,00",
"video": null,
"description": "TESTE TIPO 4",
"personId": 1,
"itemId": 292,
"payed": false,
"plans_id": null,
"createdAt": "2020-05-18T23:57:18.000Z",
"updatedAt": "2020-05-18T23:57:18.000Z",
"iten": {
"id": 292,
"type": "4",
"vehicle": null
},
"announcemment_photos": [],
"person": {
"id": 1,
"email": "teste@gmail.com",
"password": "$2b$10$3OZVFYWeXKWLfxBMWJBYqua0qJPQkLl3sVgIFvZFuo6qBKj62dMQS",
"name": "teste",
"type": "fis",
"createdAt": "2020-05-14T00:12:59.000Z",
"updatedAt": "2020-05-14T00:12:59.000Z"
}
}
},
include: [{
model: AnnoucementVehicle,
as: 'Alias' // optional if you didn't indicate this alias in an association definition
model: Itens,
include: [{
model: AgriculturalMachine,
}, {
model: Vehicle,
include: [{
... // other includes
}, {
model: AgriculturalImplements,
}, {
model: Vehicle,
include: [{
... // other includes