gpt4 book ai didi

node.js - 在 Sequelize 关系中查询

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

您好,我需要从与我相关的 3 个表中获取信息,但我不知道如何使用 sequelize 执行此操作,我在文档中没有找到有关如何执行此操作的任何信息

模型:

const { Model, DataTypes } = require ('sequelize');
const sequelize = require('../database/index');

class Products extends Model {
static init(sequelize){
super.init({
name: DataTypes.STRING,
float: DataTypes.DOUBLE,
price: DataTypes.DOUBLE
}, {sequelize, tableName:'products'});
}
static associate(models){
this.belongsTo(models.SubCategory, { foreignKey: 'subcategory_id', as:'subcategory'});
this.belongsTo(models.Exteriors, { foreignKey: 'exterior_id', as:'exteriors'});
this.belongsTo(models.Types, { foreignKey: 'type_id', as:'types'})
}
}

module.exports = Products;

功能:
async getAllProduct(req,res){
try {
const products = await Products.findAll({});
if(result){return res.status(200).json({result})}
else{return res.status(400).json({result: 'failed to get Products'})}
} catch (error) {
console.error(error);
}
}

最佳答案

您正在寻找预先加载,这涉及在解析器上使用 include 将关联嵌套在一个查询上。 Include 还可以使用 where、order 和其他工具来过滤结果。

Products.findAll({
include: [
{model: models.SubCategory, as: 'subcategory', include: [
{model: models.Exteriors, as: 'exteriors', include: [/* etc */]
]}
]
]}.then(function(products) {
console.log(JSON.stringify(products))

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

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