使用 Node.JS 和 MYSQL 删除数据库记录时出错

Error in delete DB record using Node.JS and MYSQL

我正在使用 MYSQL 和 NodeJS express 执行 CRUD 操作。他们在从数据库中删除记录时出错,我不知道为什么我会遇到问题,因为我已经从 SQL 复制了删除查询,它可以正常工作。这里是'DELETE FROM tblltest WHERE id=?'。我手动添加 'id' 就像 'DELETE FROM tblltest WHERE id=2' 然后它会从数据库中删除记录。请帮我解决这个问题。这是我的代码行。

 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);
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!');
    });
});

您需要在 delete API 节点方法中访问 id 路由参数,然后还将此 id 值绑定到删除查询:

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');
            }
        });
})