Node JS根据按钮单击从数据库中删除

Node JS delete from database dependent on button click

我是 Node JS 新手。我正在尝试能够根据单击哪个按钮从数据库中删除记录。我相信可以通过 AJAX 获取属性,但不完全确定如何完成。

我正在使用 MySQL 和 Handlebars 以及模板引擎

这是我的代码:

车把:

<tbody>
    {{#each data}}
        <tr>
            <td>{{this.name}}</td>
            <td><a data-id="{{ this.id }}" class="btn btn-danger">Delete</a></td>
        </tr>
    {{/each}}
</tbody>

jQuery

$(document).ready(function () {
    $("td a").each(function () {
        $(this).click(function () {
            var id = $(this).attr("data-id");
        });
    });
});

MySql:

var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database: "node"
  });
                                        ↓
con.query(`DELETE FROM NodeSQL WHERE id='${id}';`, function (err, result) {     ?????
    if (err) throw err;
});

这应该可以解决您的问题。

let id = 123;
con.query(`DELETE FROM NodeSQL WHERE id=?;`,req.params.id, function (err, result) { 
    if (err) throw err;
});

您 运行 遇到的主要问题是前端 javascript 和后端 javascript(节点)在不同的环境中 运行 并且无法共享内存。您将需要使用 express.js 之类的东西来创建 REST API。然后您可以使用 fetch 或 axios 与 API.

通信

//点击按钮时的前端

axios.post('/api/delete/123');

//后端

const express = require('express')
const app = express()
const port = 3000
const mysql = require('mysql')

var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database: "node"
});

app.post('/api/delete/:id', (req, res) => {
    con.query(`DELETE FROM NodeSQL WHERE id=?;`,id, function (err, result) { 
        if (err) throw err;
    });
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`))