Module
Post fetch/fetch, promise
Post Fetch (JSON)
Post Fetch (FormData)
Get Fetch (JSON)
app.get adatbázis adat
app.get adatbázis adat (id)
app.post adatbázis json adat
app.post adatbázis formdata adat
Adatbázis keresés id alapján
Adatbázisba feltöltés
Adatbázis adatok frissítése
Táblagenerálás
Select
Insert
Delete
Update
Checkbex
Cella feltöltése
A backend app.js összes module-a, amikre szükség lehet.
//!Module-ok importálása
const express = require('express'); //?npm install express
const session = require('express-session'); //?npm install express-session
const path = require('path');
const fs = require('fs');
const app = express();
const router = express.Router();
//!SQL Queries importálása
const db = require(path.join(__dirname + '/sql/db-queries'));
//!Multer
const multer = require('multer');
const storage = multer.diskStorage({
destination: './uploads',
filename: (request, file, callback) => {
callback(null, file.originalname);
}
});
const upload = multer({ storage: storage });
<!--Illetve a db-queries.js-ben-->
const mysql = require('mysql');
Frontendben is tudjuk a module-t használni. Body aljára kell rakni egy <script type="module" src="index.js">. Egy példa hogyan tudunk exportálni, majd importálni objektumot vagy függvényt.
// math.js
function add(a, b) {
return a + b;
}
module.exports = add;
// index.js
const add = require('./math');
console.log(add(2, 3)); // Kimenet: 5
<!--Egyszerre többet is tudunk exportálni-->
// utils.js
module.exports = {
appName: 'MyApp',
version: '1.0.0',
multiply: (a, b) => a * b,
users: ['Alice', 'Bob', 'Charlie']
};
// main.js
const utils = require('./utils');
console.log(utils.appName); // Kimenet: 'MyApp'
console.log(utils.version); // Kimenet: '1.0.0'
console.log(utils.multiply(2, 3)); // Kimenet: 6
console.log(utils.users); // Kimenet: ['Alice', 'Bob', 'Charlie']
Post - Fetch
function postMethodFetch(url, postObject) {
return fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(postObject)
})
.then((response) => {
if (!response.ok) {
throw new Error(`Hiba: ${response.status}`);
}
return response.json();
})
.catch((error) => {
throw new Error(`Hiba történt: ${error.message}`);
});
}
Használata:
const url = url;
const postObject = {
title: 'foo',
body: 'bar',
userId: 1
};
postMethodFetch(url, postObject)
.then((data) => {
console.log('Siker:', data);
})
.catch((error) => {
console.error(error.message);
});
Post - Fetch, promise
function postMethodFetch(url, postObject) {
return new Promise((resolve, reject) => {
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(postObject)
})
.then((response) => {
if(!response.ok) {
reject(`Hiba: ${response.status}`);
}
return response.json();
})
.then((data) => {
resolve(data);
})
.catch((error) => {
reject(`Hiba történt: ${error.message}`);
});
});
}
Használata:
const url = url; // Egy teszt API
const postObject = {
title: 'foo',
body: 'bar',
userId: 1
};
postMethodFetch(url, postObject)
.then((data) => {
console.log('Sikeres válasz:', data);
})
.catch((error) => {
console.error('Hiba történt:', error);
});
const postJsonFetch = (url, data) => {
return new Promise((resolve, reject) => {
fetch(url,
{
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
})
.then((response) => {
if (!response.ok) {
reject('Hiba: ' + response.status);
}
return response.json();
})
.then((data) => {
resolve(data)
})
.catch((error) => {
reject('Hiba: ' + error);
});
})
}
const postFormDataFetch = (url, formData) => {
return new Promise((resolve, reject) => {
fetch(url,
{
method: 'POST',
body: formData
})
.then((response) => {
if (!response.ok) {
reject('Hiba: ' + response.status);
}
return response.json();
})
.then((data) => {
resolve(data)
})
.catch((error) => {
reject('Hiba: ' + error);
});
})
}
const getFetch = (url) => {
return new Promise((resolve, reject) => {
fetch(url)
.then((response) => {
if (!response.ok) {
reject(`Hiba: ${response.status}`)
}
return response.json();
})
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(`Hiba: ${error}`)
});
})
}
app.get('/api/getDatabaseDatas', async (request, response) =>
{
try
{
const datas = await db.getDatasFromDatabase()
res.status(200).json({ datas });
}
catch(err)
{
console.log("Error: " + err)
res.status(500).json({ error: err });
}
});
app.get('/api/getDatasById/:id', async (request, response) =>
{
try
{
const id = request.params.id;
const datas = await db.getDatasById(id);
res.status(200).json({ datas });
}
catch(err)
{
console.log("Error: " + err)
res.status(500).json({ error: err });
}
})
app.post('/api/postJsonDatas/', async (request, response) =>
{
try
{
const datas = request.body;
await db.insertDatas(datas.jsondata1, datas.jsondata2, datas.jsondata3);
response.json({message: "siker!"})
}
catch(err)
{
console.log("Error: " + err)
response.json({error: err});
}
})
app.post('/api/insertFormdata/', upload.single('file'), async (request, response) =>
{
try
{
const formData = request.body;
await db.insertNagydij(formData.formdata1, formData.formdata2, formData.formdata3);
response.json({message: "siker!"})
}
catch(err)
{
console.log("Error: " + err)
response.json({error: err});
}
})
function getDatasById(id)
{
return new Promise((resolve, reject) =>
{
pool.query('SELECT * FROM tabla_nev WHERE id = ?;', [id], (err, result, fields) =>
{
if (err) return reject(err);
resolve(result);
});
});
}
function insertDatas(data1, data2, data3)
{
return new Promise((resolve, reject) =>
{
pool.query('INSERT INTO tabla_nev (tabla_oszlop1, tabla_oszlop2, tabla_oszlop3) VALUES (?, ?, ?);', [data1, data2, data3], (err, result, fields) =>
{
if (err) return reject(err);
resolve(result);
});
});
}
function updateData(id, newData1, newData2, newData3) {
return new Promise((resolve, reject) => {
pool.query(
'UPDATE tabla_nev SET tabla_oszlop1 = ?, tabla_oszlop2 = ?, tabla_oszlop3 = ? WHERE id = ?;',
[newData1, newData2, newData3, id],
(err, result, fields) => {
if (err) return reject(err);
resolve(result);
}
);
});
}
Táblagenerálás + meghívás Kárpáti szerint.
function pTableWrite(data){
const hova=document.getElementById("projektBody");
hova.innerHTML=null;
for(let i=0;i < data.length;i++)
{
let sor = document.createElement("tr");
sor.dataset=data[i].id;
let name = document.createElement("td");
name.innerHTML = data[i].name;
let description = document.createElement("td");
description.innerHTML = data[i].description;
sor.appendChild(name);
sor.appendChild(description);
hova.appendChild(sor);
}
}
document.addEventListener('DOMContentLoaded', async function () {
pTableWrite(await selectProjekt());
document.getElementById("newProjekt").addEventListener("click", async function () {
if ((await NewProjekt()).affectedRows > 0) {
pTableWrite(await selectProjekt());
}
});
document.getElementById('deleteFormFeladat').addEventListener('click', resetFeladatForm);
});
Select részei
Backend (db-queries.js)
function selectAll() {
return new Promise((resolve, reject) => {
pool.query('SELECT * FROM tabla;', (err, result, fields) => {
if (err) return reject(err);
resolve(result);
});
});
}
module.exports = {
selectAll
};
Backend (app.js)
app.get('/api/selectall', (request, response) => {
db.selectAll()
.then((data) => {
response.json(data);
})
.catch((err) => {
console.error('Error:', err);
});
});
Frontend (script)
async function SelectAll() {
let response = fetch("/api/selectall", {
method: "GET"
});
return (await response).json();
}
Insert részei
Backend (db-queries.js)
function insert(tomb) {
return new Promise((resolve, reject) => {
pool.query('INSERT INTO tabla (adat) VALUES (?);', [tomb], (err, result) => {
if (err) return reject(err);
resolve(result);
});
});
}
module.exports = {
insert
};
Backend (app.js)
app.post('/api/insert',upload.single('file') , (request, response) => {
let tomb = [];
tomb.push(request.body.adat);
db.insert(tomb)
.then((data) => {
response.json(data);
})
.catch((err) => {
console.error('Error:', err);
});
});
Frontend (script)
async function Insert() {
let formData = new FormData(document.getElementById("formid"));
let response = fetch("/api/insert", {
method: "POST",
body: formData
})
return (await response).json();
}
Delete részei
Backend (db-queries.js)
function delete(tomb) {
return new Promise((resolve, reject) => {
pool.query('DELETE FROM tabla WHERE id = ?;',tomb,(err, result) => {
if (err) return reject(err);
resolve(result);
}
);
});
}
module.exports = {
delete
};
Backend (app.js)
app.post('/api/delete',upload.single('file') , (request, response) => {
let tomb = [];
tomb.push(request.body.id);
db.deleteAuto(tomb)
.then((data) => {
response.json(data);
})
.catch((err) => {
console.error('Error:', err);
});
});
Frontend (script)
async function Delete(formData) {
let response = fetch("/api/delete", {
method: "POST",
body: formData
})
return (await response).json();
}
async function Delete(id) {
const response = await fetch("/api/delete", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ id })
});
return await response.json();
}
Update részei
Backend (db-queries.js)
function update(tomb) {
return new Promise((resolve, reject) => {
pool.query('UPDATE tabla SET adat=1 WHERE id=?;', tomb, (err, result) => {
if (err) return reject(err);
resolve(result);
});
});
}
module.exports = {
update
};
Backend (app.js)
app.post('/api/update',upload.single('file') , (request, response) => {
let tomb = [];
tomb.push(request.body.id);
db.update(tomb)
.then((data) => {
response.json(data);
})
.catch((err) => {
console.error('Error:', err);
});
});
Frontend (script)
async function update(formData) {
let response = fetch("/api/update", {
method: "POST",
body: formData
})
return (await response).json();
}
Táblázatba minden checkbox bejelölése és meghívása
function checkAll(tbody) {
let tabla = tbody.parentElement;
let cbAll = tabla.children[0].children[0].children[0].children[0].checked;
for (let i = 0; i < tbody.children.length; i++) {
tbody.children[i].children[0].children[0].checked = cbAll;
}
}
document.getElementById("checkboxid").addEventListener("change", function () {
checkAll(document.getElementById("tbodyid"))
})
const selectVarosBtn = () => {
const tbody = document.getElementById('varosBody');
let i = 0;
while (i < tbody.children.length && tbody.children[i].dataset.selected !== 'true') {
i++;
}
if (i < tbody.children.length) {
const selected = tbody.children[i];
const cells = selected.children;
const form = document.getElementById('varosForm');
document.getElementById('vnev').value = cells[0].textContent;
document.getElementById('jaras').value = cells[1].textContent;
document.getElementById('kisterseg').value = cells[2].textContent;
document.getElementById('nepesseg').value = cells[3].textContent;
document.getElementById('terulet').value = cells[4].textContent;
form.dataset.selectedid = selected.dataset.id;
}
};