Node JS удаление из базы данных в зависимости от нажатия кнопки - PullRequest
0 голосов
/ 21 января 2020

Я новичок в 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;
});

1 Ответ

0 голосов
/ 21 января 2020

Это должно исправить ваш запрос.

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 или ax ios для связи с этим API.

// FRONTEND ON CLUTTON CLICK

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

// BACKEND

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