Error in delete DB record using Node.JS and MYSQL

Viewed 519

I'm performing CRUD operations using MYSQL and NodeJS express. Their error in deleting a record from DB, I don't know why I was getting a problem as i have copied the delete query from SQL where it is working properly. Here it is 'DELETE FROM tblltest WHERE id=?'. I manually add 'id' like 'DELETE FROM tblltest WHERE id=2' then it will delete the record from DB. Please help me out to solve this issue. Here are my lines of code.

 var express = require('express');
    var mysql = require('mysql');
    var app = express();

var connection = mysql.createConnection({
    
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'sampledb'
    
});

app.delete('/:id' , function(req , resp) {
    connection.query('DELETE FROM `tblltest` WHERE `id`=?' , function(error , rows , fields){
        if(!error){
            
            console.log('Successful deleted!! \n');
            resp.json(rows);
            
        }else{
            console.log('Error in deleting');
        }
        
    });
})

app.listen(1337);
2 Answers
var express = require('express');
var app = express();
var mysql      = require('mysql');
var bodyParser = require('body-parser');
 
//start mysql connection
var connection = mysql.createConnection({
  host     : 'localhost', //mysql database host name
  user     : 'root', //mysql database user name
  password : '', //mysql database password
  database : 'sampledb' //mysql database name
});
 
connection.connect(function(err) {
  if (err) throw err
  console.log('You are now connected...')
})
//end mysql connection
 
//start body-parser configuration
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
}));
//end body-parser configuration
 
//create app server
var server = app.listen(1337,  "127.0.0.1", function () {
 
  var host = server.address().address
  var port = server.address().port
 
  console.log("Example app listening at http://%s:%s", host, port)
 
});
 

 
//rest api to delete record from mysql database
app.delete('/employees', function (req, res) {
   console.log(req.body);
   connection.query('DELETE FROM `tblltest` WHERE `id`=?', [req.body.id], function (error, results, fields) {
      if (error) throw error;
      res.end('Record has been deleted!');
    });
});

You need to access the id route parameter in your delete API Node method, and then also bind this id value to the delete query:

app.delete('/:id', function(req, resp) {
    var id = req.params.id;

    connection.query('DELETE FROM tblltest WHERE id = ?', [id],
        function(error, rows, fields) {
            if (!error) {
                console.log('Successful deleted!! \n');
                resp.json(rows);    
            }
            else {
                console.log('Error in deleting');
            }
        });
})
Related