gpt4 book ai didi

node.js - 我无法使用 sequelize 运行具有多个搜索参数的简单搜索

转载 作者:行者123 更新时间:2023-12-03 22:37:16 25 4
gpt4 key购买 nike

我一直在尝试进行简单的搜索,但搜索参数不止一个,但无法真正领先。我正在使用 sequelize 4.X 和 NodeJs。

好吧,我尝试在收到这些搜索参数后通过 req.params 接收它们,我会进行对象破坏(通常只使用一个参数)。我还尝试通过 req.body 发送搜索参数,但是在获取它们并传递它们以续写无效值错误之后

//controller
static async getParticulars(req, res) {
try {
const one = await termService.getOneComplex(req.body.id,req.body.term,req.body.studentId,req.body.course);
if (!one) {
util.setError(400, "Term can't be found");
return util.send(res);
} else {
util.setSuccess("Term found", 200, one);
return util.send(res);
}
} catch (error) {
util.setError(400, error.message);
return util.send(res);
}
}

//service
static async getOneComplex(classId_n,term_n,studentId_n,course_n){
try {
const foundTerm = await database.Term.findAll({
where :{
[op.and] : [
{classId:classId_n},
{studentId:studentId_n},
{term:term_n},
{course:course_n}
]
}
});
if(Object.values(foundTerm).length >=1){
return foundTerm;
}else{
return null;
}
} catch (error) {
throw error;
}
}

期望 :
返回具有状态、消息、数据(具有实际数据)属性的对象。
//Actual:

{
"status": "Error",
"message": "Invalid value { classId: undefined }"
}

最佳答案

您不需要在此处使用运算符。只需在 where 子句中使用简单的哈希。

 const foundTerm = await database.Term.findAll({
where :{
classId:classId_n
studentId:studentId_n
term:term_n
course:course_n
}
});

此外,根据您的错误。您正在发送 undefined 作为 classId 的值。因此,记录该值并检查它为何未定义。

关于node.js - 我无法使用 sequelize 运行具有多个搜索参数的简单搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57666796/

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