gpt4 book ai didi

node.js - 如何检查Sequelize中是否存在belongsToMany关联

转载 作者:行者123 更新时间:2023-12-03 22:34:59 24 4
gpt4 key购买 nike

我在 sequelize 中有两个模型,它们的关联定义如下

Product.belongsToMany(models.Disease, {through: 'DiseaseProduct'});

疾病产品表由 sequelize 自动创建,有两列 DiseaseIdProductId

我已经多次使用 documentation,但我似乎无法正确运行 hasDisease 函数来检查某种疾病是否与产品相关(它总是返回 false)。但是,我可以执行以下正确运行的操作。
var prod = await Product.findByPk(1);
prod.addDisease(1);

我想要做的是检查疾病与下面这样的产品的关联
var prod = await Product.findByPk(1);
prod.addDisease(1); //this runs correctly
prod.hasDisease(1); //the promise should resolve to true

我试过的
prod.hasDiseases(1);
prod.hasDiseases([1]);

最佳答案

所以问题在于将字符串传递给 prod.hasDisease() 函数。

当我通过如下所示的 express 中的请求变量将参数传递给这个函数时

prod.hasDisease(req.body.diseaseId);

它总是返回 false,尽管同时 prod.addDisease(req.body.diseaseId) 运行没有问题并且通过数据透视表关联疾病。

无论如何,解决方案是将字符串转换为数字,如
prod.hasDisease(Number(req.body.diseaseId));

不敢相信我在这上面浪费了 4 个小时!

关于node.js - 如何检查Sequelize中是否存在belongsToMany关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61888292/

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