[英]How do I implement filtering with Node.js and MySQL?
我目前正在學習如何在 Node.js 和 MySQL 后端中實現過濾、排序和分頁。
我目前的解決方案是:
exports.getAll = (req, res) => {
let params = {
target_muscle: (req.query.target_muscle ? req.query.target_muscle : 'target_muscle')
}
Exercise.getAll(params, (error, result) => {
if(error)
res.status(500).send({
message: error.message
});
else
res.send(result);
})
}
在從 model 調用此方法的 controller 上:
Exercise.getAll = (params, result) => {
db.query("SELECT\
exercise_id,\
username AS author,\
title, target_muscle,\
sets, reps, duration,\
likes,\
video_id\
FROM exercises\
JOIN users ON exercises.author_id = users.user_id\
WHERE target_muscle=?", [params.target_muscle], (error, res) => {
if(error) {
result(error, null);
return;
}
result(null, res);
})
}
當我實際上在 GET 請求上傳遞了一個查詢參數但當我不傳遞任何參數時給我一個空結果時,它工作正常。 當我沒有通過任何東西時,我希望它不會被過濾。
在將該條件添加到 SQL 查詢的 where 部分之前,您需要驗證是否有參數值。 你這樣做的方式,你的代碼是這樣查詢的。
WHERE target_muscle = 'target_muscle'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.