jeudi 20 février 2020

Is there a way that I can write these if-else statements cleaner than I've written before?

so I wrote a code that has a lot of if-else statements and achieving what I need to accomplish but then I saw it was a complete mess and I want it to rewrite in a much cleaner way but I don't know how to rewrite my code into a cleaner one.

Below is the code that I wrote a while ago. Any recommendation on this one?

router.post('/complete', (req, res) => {
    let sql = `......`;

    if (req.body.city_province && !req.body.city_name && !req.body.hosp_name) {
        let withCityProvince = `${sql} ..... `
        myDB.query(withCityProvince, (err, results) => {
            if (err) {
                console.log(err)

            } else {
                res.send(results)
            }
        })
    } else if (req.body.city_province && req.body.city_name && !req.body.hosp_name) {

        let withCityProvince = `${sql} ......`
        myDB.query(withCityProvince, (err, results) => {
            if (err) {
                console.log(err)

            } else {
                res.send(results)
            }
        })
    } else if (req.body.city_province && req.body.city_name && req.body.hosp_name) {

        let withCityProvince = `${sql} ....`
        myDB.query(withCityProvince, (err, results) => {
            if (err) {
                console.log(err)

            } else {
                res.send(results)
            }
        })
    } else if (req.body.hosp_name && !req.body.city_region && !req.body.city_name && !req.body.city_province) {
        console.log("Hospname only")
        let sql = `......`
        myDB.query(sql, (err, results) => {
            if (err) {
                console.log(err)
            } else {
                res.send(results)
            }
        })
    } else if (req.body.hosp_name && req.body.city_region && !req.body.city_name && !req.body.city_province) {

        let sql = `......`;
        myDB.query(sql, [req.body.city_region], (err, results) => {
            if (err) {
                console.log(err)
            } else {
                res.send(results)
            }
        })
    } else if (req.body.hosp_name && req.body.city_region && req.body.city_province && !req.body.city_name) {
        let sql = `......`;
        myDB.query(sql, [req.body.city_region], (err, results) => {
            if (err) {
                console.log(err)
            } else {
                res.send(results)
            }
        })
    }
    else {
        myDB.query(sql, (err, results) => {
            if (err) {
                console.log(err)
            } else {
                res.send(results)
            }
        })
    }
})
module.exports = router;

Aucun commentaire:

Enregistrer un commentaire