繁体   English   中英

如何使用 Node.js 和 MySQL 实现过滤?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM