将续集运算符与 JSON 正文中的值一起使用



一般是续集和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("歌曲"(。标准1">空和"歌曲"。标准2"> 空(;

谢谢!

如果其他人最终来到这里。我通过将 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,
}),
}) 

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

最新更新