gpt4 book ai didi

javascript - 尝试在查询生成器中添加关联时无法读取未定义的属性 'source'。在 Sequelize ORM 中选择查询

转载 作者:可可西里 更新时间:2023-11-01 08:02:48 24 4
gpt4 key购买 nike

我正在尝试使用 QueryGenerator.selectQuery 生成查询。

let query = models.sequelize.dialect.QueryGenerator.selectQuery('table', {
include: [{
model: models.Users,
where: {
deleted: false
},
required: true,
attributes: ['id']
}],
where: {
createdAt: {
[Op.between]: [o.start, o.end]
},
deleted: false
},
attributes: [[models.sequelize.fn("COUNT", models.sequelize.col("Table.id")), 'count']]
}, models.Table).slice(0, -1);

这是我遇到的错误。

TypeError: Cannot read property 'source' of undefined at Object.generateJoin (/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1433:30) at Object.generateInclude (/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1358:24) at Object.selectQuery (/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1001:34)

github 问题跟踪器 https://github.com/sequelize/sequelize/issues/8751

最佳答案

经历了和你一样的错误,终于解决了问题。

因为 QueryGenerator 在内部用于 Sequelize,所以它没有关于此的特定文档(不幸的是)。在将参数传递给 selectQuery 之前,我们应该使用对象 Model“解析”选项。

根据您的查询,我认为您可以做到这一点。请注意以下代码未经测试并使用 es6 风格

// Import sequelize model library
const Model = require("sequelize/lib/model");

// Separate your query options
const queryOptions = {
include: [{
model: models.Users,
where: {
deleted: false
},
required: true,
attributes: ['id']
}],
where: {
createdAt: {
[Op.between]: [o.start, o.end]
},
deleted: false
},
attributes: [[models.sequelize.fn("COUNT", models.sequelize.col("Table.id")), 'count']]
};

// Parse the queryOptions, this operation would serialize the queryOptions
// and this is the important process about building the query
Model._validateIncludedElements.bind(DB.SuitCase)(queryOptions);

// Execute with serialized options object
let query = models.sequelize.dialect.QueryGenerator.selectQuery('table', queryOptions, models.Table);

希望对您有所帮助。

关于javascript - 尝试在查询生成器中添加关联时无法读取未定义的属性 'source'。在 Sequelize ORM 中选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652112/

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