Javascript 如何获取删除的鸟类、动物、附件的表格

Javascript 如何获取删除的鸟类、动物、附件的表格,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我是nodeJs和Express的新手,希望了解我删除的项目的详细信息,即动物、鸟类、配件 下面是我的JavaScript代码 const { count } = require('console'); var express = require('express'); var mysql=require('mysql'); const { createConnection } = require('net'); var app = express(); var bodyparser=requi

我是nodeJs和Express的新手,希望了解我删除的项目的详细信息,即动物、鸟类、配件

下面是我的JavaScript代码

const { count } = require('console');
var express = require('express');
var mysql=require('mysql');
const { createConnection } = require('net');
var app = express();
var bodyparser=require('body-parser');

app.set("view engine","ejs");
app.use(bodyparser.urlencoded({extended:true}));
app.use(express.static(__dirname +"/public"))

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


app.get("/animals", function(req, res){
    var q="select animals.pet_id,pet_category,breed,weight,age,height,fur,cost from animals join pets on animals.pet_id= pets.pet_id";
    connection.query(q,function(err,results){
        if(err) throw err;
        res.render("dogs_home",{data:results});
    
    });
});

app.get("/birds", function(req, res){
    var q="select birds.pet_id,type,noise,cost from birds join pets on birds.pet_id= pets.pet_id";
        connection.query(q,function(err,results){
        if(err) throw err;
        res.render("birds_home",{data:results});
    });
});


app.get("/",function(req,res){
        res.render("home");

});

app.get("/accessories", function(req, res){
    var q="select * from pet_products";
    connection.query(q,function(err,results){
        if(err) throw err;
        res.render("accessories",{data:results});
    
    });
});

app.get("/sales", function(req, res){
    var q="select * from sales_details";
    connection.query(q,function(err,results){
        if(err) throw err;
        res.render("sales",{data:results});
    
    });
});

app.get("/customers", function(req, res){
    var q="select * from customer";
    connection.query(q,function(err,results){
        if(err) throw err;
        res.render("customer",{data:results});
    
    });
});

app.get("/ani_add", function(req, res){
 
        res.render("ani_add");
    
});

app.get("/animal_id_add", function(req, res){
 
    res.render("animal_id_add");

});




app.post("/register_dogs",function(req,res){
    var dog={pet_id:req.body.pet_id,
             breed:req.body.breed,
             weight:req.body.weight,
             height:req.body.height,
             age:req.body.age,
             fur:req.body.fur};
    var q="insert into animals set ?"
    connection.query(q,dog,function(err,results){
        if(err) throw err;
        res.redirect("/animals");
});

});

app.post("/register_dogs_id",function(req,res){
    var dog={pet_id:req.body.pet_id,
             pet_category:req.body.pet_category,
             cost:req.body.cost};
    var q="insert into pets set ?"
    connection.query(q,dog,function(err,results){
        if(err) throw err;
        res.redirect("/ani_add");
});

});


//route for delete data for dogs
app.post('/delete',(req, res) => {
    let query = "DELETE FROM pets WHERE pet_id=?";
    let values= [req.body.pet_id];
    connection.query(query, values, function(err,results){
        if(err) {
            throw err;
        }
        res.redirect("/animals");
    });
});

//route for delete data for birds
app.post('/delete_birds',(req, res) => {
    let query = "DELETE FROM birds WHERE pet_id=?";
    let values= [req.body.bird_id];
    connection.query(query, values, function(err,results){
        if(err) {
            throw err;
        }
        res.redirect("/birds");
    });
});

//route for delete data for customers
app.post('/delete_customer',(req, res) => {
    let query = "DELETE FROM customer WHERE cs_id=?";
    let values= [req.body.customer_id];
    connection.query(query, values, function(err,results){
        if(err) {
            throw err;
        }
        res.redirect("/customers");
    });
});


app.post('/delete_pp_id',(req, res) => {
    let query = "DELETE FROM pet_products WHERE pp_id=?";
    let values= [req.body.pp_id];
    connection.query(query, values, function(err,results){
        if(err) {
            throw err;
        }
        res.redirect("/accessories");
    });
});


app.listen(8080, function () {
    console.log('App listening on port 8080!');
   });
   
我使用下面的代码来获取删除的项目,但每次我被重定向到错误的表

app.get("/sold_products", function(req, res){
    var q="select * from sold_products join pet_products on sold_products.pp_id= pet_products.pp_id";
    connection.query(q,function(err,results){
        if(err) throw err;
        res.render("accessories",{data:results});
    
    });
});
我已经创建了一个名为“出售宠物”的表

create table sold_pets(sd_id varchar(9) not null,
pet_id varchar(9) not null,
primary key(pet_id),
foreign key(sd_id)references sales_details(sd_id)on delete cascade, foreign key(pet_id)references pets(pet_id)on delete cascade);
对于已售出的产品也是如此

create table sold_products(sd_id varchar(9) not null, pp_id varchar(9) not null,
quantity int(11) not null,
primary key(pet_id,pp_id),
foreign key(sd_id)references sales_details(sd_id)on delete cascade, foreign key(pp_id)references pet_products(pp_id)on delete cascade );

您确定您在“已售产品.pp\u id”中引用的“宠物产品”记录仍然存在吗?根据代码,我不知道如何“重定向到错误的表”。我可以问一下,为什么没有一张带有“animal_type_id”字段的“animals”表和一张“animal_type”表?您不必在多个表中拆分几乎相同的数据结构。我也会考虑不删除(删除)动物记录,但有一个EnUM字段,允许“动物”的“动物”ID“可用”、“检疫”、“出售”等。看看sequelize。你说的“删除”是什么意思?我说的“删除”是指我想访问我从mySql表中删除的表中的宠物或附件。你确定你在“Seld_products.pp_id”中引用的“宠物产品”记录仍然存在吗?根据代码,我不知道如何“重定向到错误的表”。我可以问一下,为什么没有一张带有“animal_type_id”字段的“animals”表和一张“animal_type”表?您不必在多个表中拆分几乎相同的数据结构。我也会考虑不删除(删除)动物记录,但有一个EnUM字段,允许“动物”的“动物”ID“可用”、“检疫”、“出售”等。看看sequelize。你说的“删除”是什么意思?我说的“删除”是指我想访问我从mySql表中删除的表中的宠物或附件。