对循环findAll查询和合并结果使用Sequelize



我正在大学课程中编写开源项目

它是一个通过将输入关键字除以逗号来搜索另一个表的值的函数。

在本例中,数据

Python、CPP、Csharp

var keyword = result[0].keyword;
var keyword_arr = [];
var keyword_split = keyword.split(',');
for (var i in keyword_split)
{
keyword_arr.push(keyword_split[i]);
}

我已经成功地用上面的逗号分隔了它们,但我正在寻找sequelize中的循环。

"错误:发送标头后无法设置标头。">

返回一个错误,并且不执行该错误。

我想输出合并后的结果。我该怎么办?

我的代码是

for (i = 0; i < keyword_arr.length; i++) {
query += models.contents.findAll({
where: {keyword: {like: '%' + keyword_arr[i] + '%'}},
raw: true
});
}

谨致问候。

你的方向是正确的,但这是你可以做的:

queries = [];
for (i = 0; i < keyword_arr.length; i++) {
queries.push({keyword: {like: '%' + keyword_arr[i] + '%'}});
}
models.contents.findAll({
where: {
$or : queries
}
raw: true
}).then(results => {
console.log(results); // <---- Check this
})

注意:

models.contents.findAll() //<---- Returns promises

你不能只通过+=组合承诺,因为它不是字符串或数字就像

在您的情况下,它将为每个标记创建并运行查询,因此这不是正确的方法,你应该像我做那样组合标签并创建一个查询

最新更新