tareq3
11/21/2018 - 4:06 PM

Basic Mysql 2 Query for Node.js

Basic function for creating mysql call along with express framework in node.js

//create table //get call is extra
app.get('/createposttable', (req, res, next) => {

    let sql = "CREATE TABLE posts(id int AUTO_INCREMENT, title VARCHAR(255), body VARCHAR(255), PRIMARY KEY(id) )";

    connection.query(sql, (err, result) => {
        if (err) throw err;

        console.log(result);

        res.send("post table Createad");
    });


});


//Get ALL Data as rows using sql 
router.get('/', (req, res, next) => {


    let sql = "SELECT * FROM `posts`  ";


    connection.query(sql, (err, rows, fields) => {
        if (!err) {
            var response = [];

            if (rows.length != 0) {
                response.push({
                    'result': 'success',
                    'data': rows
                });
            } else {
                response.push({
                    'result': 'error',
                    'msg': 'No Results Found'
                });
            }

            res.setHeader('Content-Type', 'application/json');
            res.status(200).send(JSON.stringify(response));
        } else {
            res.status(400).send(err);
        }
    });


});


//Get Data as rows using sql 
router.get('/', (req, res, next) => {


    let sql = "SELECT title, body FROM `posts`  ";


    connection.query(sql, (err, rows, fields) => {
        if (!err) {
            var response = [];

            if (rows.length != 0) {
                response.push({
                    'result': 'success',
                    'data': rows
                });
            } else {
                response.push({
                    'result': 'error',
                    'msg': 'No Results Found'
                });
            }

            res.setHeader('Content-Type', 'application/json');
            res.status(200).send(JSON.stringify(response));
        } else {
            res.status(400).send(err);
        }
    });


});



//Get Data WHere its not NULL as rows using sql 
router.get('/', (req, res, next) => {


    let sql = "SELECT title, body FROM `posts` WHERE  id < ? AND title IS NOT NULL ";


    connection.query(sql, [25], (err, rows, fields) => {
        if (!err) {
            var response = [];

            if (rows.length != 0) {
                response.push({
                    'result': 'success',
                    'data': rows
                });
            } else {
                response.push({
                    'result': 'error',
                    'msg': 'No Results Found'
                });
            }

            res.setHeader('Content-Type', 'application/json');
            res.status(200).send(JSON.stringify(response));
        } else {
            res.status(400).send(err);
        }
    });


});



//Get Data as rows using sql 
router.get('/', (req, res, next) => {


    let sql = "SELECT title, body FROM `posts` WHERE  id < ? AND title =? ";


    connection.query(sql, [25, "no2"], (err, rows, fields) => {
        if (!err) {
            var response = [];

            if (rows.length != 0) {
                response.push({
                    'result': 'success',
                    'data': rows
                });
            } else {
                response.push({
                    'result': 'error',
                    'msg': 'No Results Found'
                });
            }

            res.setHeader('Content-Type', 'application/json');
            res.status(200).send(JSON.stringify(response));
        } else {
            res.status(400).send(err);
        }
    });


});


// post Post call using Query Params:

router.post('/', (req, res, next) => {

    if (req.query.title == null || req.query.body == null) {
        res.json({
            message: 'you have to provide title and body query params'
        });
    } else {
        let sql = "INSERT INTO `posts` (title, body)  VALUES (?,?) ";


        connection.query(sql, [req.query.title, req.query.body], (err) => {
            if (err) throw err;

            res.send("Data Has been Inserted Successfully");
        });
    }
});



// post Post call using Query Params:

router.post('/', (req, res, next) => {

    if (req.query.title == null || req.query.body == null) {
        res.json({
            message: 'you have to provide title and body query params'
        });
    } else {
        let sql = "INSERT INTO `posts`   SET ? ";

        let values = {
            title: req.query.title,
            body: req.query.body
        };

        connection.query(sql, values, (err) => {
            if (err) throw err;

            res.send("Data Has been Inserted Successfully");
        });
    }
});


//Put Call using rest api 
router.put('/', (req, res, next) => {


    if (req.query.title == null || req.query.id == null) {
        res.json({
            message: 'you have to provide title and id query params'
        });
    } else {

        let sql = "UPDATE posts SET title=? WHERE  id < ? AND title IS  NULL";


        connection.query(sql, [req.query.title, req.query.id], (err, rows, fields) => {
            if (!err) {
                var response = [];

                if (rows.length != 0) {
                    response.push({
                        'result': 'success',
                        'data': rows
                    });
                } else {
                    response.push({
                        'result': 'error',
                        'msg': 'No Results Found'
                    });
                }

                res.setHeader('Content-Type', 'application/json');
                res.status(200).send(JSON.stringify(response));
            } else {
                res.status(400).send(err);
            }
        });
    }

});


//Delete Item matching with id

//DElete Route Call
router.delete('/', (req, res, next) => {


    if (req.query.id == null) {
        res.json({
            message: 'you have to provide  id query params'
        });
    } else {

        let sql = "DELETE FROM  posts WHERE  id = ? ";


        connection.query(sql, [req.query.id], (err, rows, fields) => {
            if (!err) {
                var response = [];

                if (rows.length != 0) {
                    response.push({
                        'result': 'success',
                        'data': rows
                    });
                } else {
                    response.push({
                        'result': 'error',
                        'msg': 'No Results Found'
                    });
                }

                res.setHeader('Content-Type', 'application/json');
                res.status(200).send(JSON.stringify(response));
            } else {
                res.status(400).send(err);
            }
        });
    }

});