С Новым годом! Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 23.05.2017
Сообщений: 65

CRUD-запросы

14.02.2019, 18:46. Показов 1643. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Пытаюсь потихоньку начать учить NodeJS (да и в принципе JavaScript), и вот, дошел до очередного тупика.
Значит есть БД (в MySQL), подключился к ней через NodeJS (модуль mysql), подключил express и body-parser, чтобы можно было всем этим добром манипулировать.
Что имеется:
База данных с двумя позициями и двумя столбцами (имя, фамилия)
Сервер, подключенный к БД:
JS-код
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const mysql = require('mysql');
const express = require('express');
var app = express();
const bodyparser = require('body-parser');
 
app.use(bodyparser.json());
 
var mysqlConnection = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'123456',
    database:'names',
    multipleStatements: true
});
 
mysqlConnection.connect((err)=>{
    if(!err)
        console.log('DB connection succeded');
    else
        console.log('DB connection failed \n Error: ' + JSON.stringify(err, undefined, 2));
});
 
 
app.listen(3000, ()=>console.log('Server is running at port 3000'));
 
// Получение всего списка
app.get('/index.html', (req, res)=>{
    mysqlConnection.query('SELECT * FROM names', (err, rows, fields)=>{
        if (!err) console.log(rows);
        else console.log(err);
    });
});
 
// Получение элемента
app.get('/index.html/:id', (req, res)=>{
    mysqlConnection.query('SELECT * FROM names WHERE Name = ?', [req.params.id], (err, rows, fields)=>{
        if (!err) console.log(rows);
        else console.log(err);
    });
});
 
// Удаление элемента
app.delete('/index.html/:id', (req, res)=>{
    mysqlConnection.query('DELETE FROM names WHERE Name = ?', [req.params.id], (err, rows, fields)=>{
        if (!err) res.send('Contact deleted');
        else console.log(err);
    });
});
 
// Создание элемента
app.post('/index.html', (req, res)=>{
    let con = req.body;
    var sql = "SET @Name = ?; SET @Number = ?; CALL New(@Name, @Number);";
    mysqlConnection.query(sql,[con.Name, con.Number], (err, rows, fields)=>{
        if (!err) res.send(rows);
        else console.log(err);
    });
});

И html страница, на которую нужно все это вывести (кнопку "Добавить", я так понял нужно прописывать CRUD-запросом методом POST?).
html-страница


Так вот вопрос. Что необходимо сделать, чтобы вывести таблицу на странице, в которой будет отображаться вся база данных. Нужно ли создавать для каждого элемента кнопки "Удалить" и "Изменить" или есть более удобные способы реализовать подобный функционал. И как вообще работают эти CRUD запросы непосредственно из HTML? Нужно подключить JS и в <script> прописывать все или как-то иначе?
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2019, 18:46
Ответы с готовыми решениями:

Ссылки в CRUD-таблице на другие CRUD-таблицы
Здравствуйте! Прошу у вас помощи :help: У меня есть список групп: Так выглядит представление таблицы `groupp` в PhpMyAdmin: ...

Авторизация и CRUD
Здравствуйте. Использую такую штуку для заполнения базы данных. Вопрос, можно ли к ней прикрутить систему авторизации, что бы для каждого...

Аватарка в CRUD
Добрый день. У меня задача реализации аватарки в CRUD. Код контроллера using System; using System.Collections.Generic; using...

2
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
15.02.2019, 17:49
Letzins, есть два способа:

1. Рендерить страницу на сервере. В этом случае используется движок шаблонов, например Pug. Сервер получает данные из БД, передает их шаблонизатору и он создает страницу, которая и отправляется в ответ.
2. Создать серверный API который отвечает "сырыми" данными. Это в основом используется когда у вас SPA приложение, или вы хотите делать упор на загрузку фронтендом. Данные подгружаются динамически через AJAX запросы.

Вам нужно определится и выбрать один из них.В первом случае у вас будет своеобразный "цикл" в шаблоне, который будет создавать нужные элементы.
Во втором вам нужно будет самому через Javascript создавать элементы списка (в фреймворках Angular/Vue/React это делается автоматически)
1
0 / 0 / 0
Регистрация: 23.05.2017
Сообщений: 65
15.02.2019, 18:07  [ТС]
MrOnlineCoder, спасибо за ответ! Нашел как выводить данные первым способом. Кажется немного неудобным такое решение. Не могли бы вы дать наводку, как можно реализовать второй способ? С API ни разу не работал и плохо понимаю каким образом можно реализовать. Может видеокурс или что-то вроде этого..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2019, 18:07
Помогаю со студенческими работами здесь

Операция редактирования в CRUD
Здравствуйте Не так давно начал знакомиться с Maven, Spring, Hibernate и т.д. Ну и в качестве небольшой практики решил попробовать...

CRUD для PHP
Всем привет. Поставлена задача - реализовать CRUD в табличке MySQL - возможность добавлять, менять, удалять элементы, видеть изменения из...

Codeigniter crud и htmlspecialchars_decode
Юзаю codeigniter и crud, добавляю текстовый филд в админку, но при вводе туды &lt;meta http-equiv=&quot;refresh&quot;...

Simple JSP CRUD
есть Сервлет такой, суть его работы : удалить, добавить, редактировать пользователей на JSP странице. Его необходимо переделать, чтобы в...

CRUD для Access
Делаю GUI для базы Access. БД открывается из файла .mdb и отображается в dataGridView. Есть кнопки добавить, удалить, изменить и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru