gpt4 book ai didi

node.js - 对来自 JSON 正文的值使用 Sequelize 运算符

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

Sequelize 和 SQL 查询的新手,但想知道有一种简单的方法可以在查询数据库时使用从客户端发送到 JSON 正文中的值。我尝试了以下几种变体但没有成功。

服务器路由的一个简单示例如下所示:

builder.post('/', async (req, res) => {
let track_criteria1 = req.body.criteria1;
let track_criteria2 = req.body.criteria2;
const customPlaylist = await req.context.models.Song.findAll({
where: {
[Op.and]: [
{ criteria1: { [Op.gt]: track_criteria1 } },
{ criteria2: { [Op.gt]: track_criteria2 } }
]}
});

return res.send(customPlaylist);
});

module.exports = builder;

对于上下文,来自客户端的请求如下所示:
  const handleSubmit = async event => {
event.preventDefault()
updateStatus(PENDING)
const response = await fetch(`http://localhost:8000/playlistbuilder/`, {
method: 'POST',
contentType: 'application/json',
body: JSON.stringify({
criteria1: state.trackCriteria.criteriaOne,
criteria2: state.trackCriteria.criteriaTwo,
})
})
const tracks = await response.json()
setcustomTracks(tracks)
setTimeout(() => {
updateStatus(SUCCESS)
}, 2000)
}

也许这是一厢情愿!现在没有错误,但 SQL 查询会像这样注销: WHERE ("songs"."criteria1"> NULL AND "songs"."criteria2"> NULL);

谢谢!

最佳答案

如果其他人在这里结束。我通过将 contentType 移动到标题中来解决它。更新后的提交处理程序如下所示:

  const handleSubmit = async event => {
event.preventDefault()
updateStatus(PENDING)
const response = await fetch(`http://localhost:8000/playlistbuilder/`, {
headers: {
'Content-Type':'application/json'
},
method: 'POST',
body: JSON.stringify({
criteria1: state.trackCriteria.criteriaOne,
criteria2: state.trackCriteria.criteriaTwo,
}),
})

我对此还不够了解,无法解释为什么会这样。我明天会研究它,但它现在正在工作。

关于node.js - 对来自 JSON 正文的值使用 Sequelize 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62399585/

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