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}!`))
我是 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}!`))