JavaScript

JavaScript – GET Fetch Promise (Frontend)

const getFetch = (url) => {
  return new Promise((resolve, reject) => {
    fetch(url)
      .then(response => {
        if (!response.ok) {
          reject(`Hiba: ${response.statusText} (${response.status})`);
        }
        return response.json();
      })
      .then(data => resolve(data))
      .catch(error => reject(`Hiba: ${error}`));
  });
};

JavaScript – POST Fetch Promise (Frontend)

const postFetch = (url, postBody) => {
  return new Promise((resolve, reject) => {
    fetch(url, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(postBody)
    })
      .then(response => {
        if (!response.ok) {
          reject(`Hiba: ${response.statusText} (${response.status})`);
        }
        return response.json();
      })
      .then(data => resolve(data))
      .catch(error => reject(`Hiba: ${error}`));
  });
};

JavaScript – POST Fetch (FormData) Promise (Frontend)

const postFetchForm = (url, formData) => {
  return new Promise((resolve, reject) => {
    fetch(url, { method: 'POST', body: formData })
      .then(response => {
        if (!response.ok) {
          reject(`Hiba: ${response.statusText} (${response.status})`);
        }
        return response.json();
      })
      .then(data => resolve(data))
      .catch(error => reject(`Hiba: ${error}`));
  });
};

JavaScript – API GET + paraméter (Backend)

app.get('/api/pelda/:parameter', (request, response) => {
  const peldaParam = request.params.parameter;
  const filePath = path.join(__dirname, `/public/data/${peldaParam}.json`);
  fs.readFile(filePath, 'utf8', (err, data) => {
    if (err) {
      console.error('Error reading file:', err);
      return response.status(500).json({ error: 'Failed to read file' });
    }
    return response.status(200).json(JSON.parse(data));
  });
});

JavaScript – API POST fs (Backend)

app.post('/api/posttxt', (request, response) => {
  const postBody = request.body;
  const filePath = path.join(__dirname, '/data/adatok.txt');
  const data = JSON.stringify(postBody);
  fs.appendFile(filePath, data, error => {
    if (error) {
      return response.json({ message: 'Hiba: ' + error });
    }
    response.json({ message: 'Sikeres küldés' });
  });
});

JavaScript – API POST FormData (Backend)

app.post('/api/update/versenyzok', upload.single('file'), async (request, response) => {
  const adatok = request.body;
  try {
    await db.updateInVersenyzok(adatok.nev, adatok.id);
    response.status(200).json({ message: 'Sikeres versenyző frissítése!' });
  } catch (error) {
    response
      .status(500)
      .json({ message: 'Hiba a versenyző frissítése közben!', error: error.message });
  }
});

app.post('/api/postFile', upload.single('fileInput'), (request, response) => {
  console.log(request.body, request.file);
  if (!request.file) {
    return response.status(500).json({ message: 'Nem töltött fel fájlt!' });
  }
  response.status(200).json({
    message: '/api/postFormData kész.',
    formDataBody: request.body,
    file: request.file
  });
});

JavaScript – File feltöltés FormData-val (Frontend)

const formData = new FormData(document.getElementById('formFile'));
// vagy: const formData = new FormData();
const fileInput = document.getElementById('fileInput2');
if (fileInput && fileInput.files.length > 0) {
  formData.append('file', fileInput.files[0]);
  try {
    const response = await postFetchForm('/api/postFile', formData);
    console.log('File uploaded successfully:', response);
  } catch (error) {
    console.error('Error uploading file:', error);
  }
} else {
  console.log('No file selected');
}

JavaScript – FormData mezők kitöltöttségének ellenőrzése

const formData = new FormData(document.getElementById('formForAddData'));
const allFilled = [...formData.values()].every(value => value.trim() !== '');
if (allFilled) {
  // POST Fetch vagy egyéb művelet
} else {
  alert('Nem töltöttél ki minden adatot!');
}

JavaScript – Form mezők alaphelyzetbe állítása

document.getElementById('feladatForm').reset();

JavaScript – Táblázat generálás (1. típus)

const div = document.getElementById('forTable');
const table = document.createElement('table');
const tbody = document.createElement('tbody');

data.forEach(row => {
  const tr = document.createElement('tr');
  Object.values(row).forEach(item => {
    const td = document.createElement('td');
    td.textContent = item;
    tr.appendChild(td);
  });
  tbody.appendChild(tr);
});

table.appendChild(tbody);
div.replaceChildren(table);

JavaScript – Táblázat generálás (csak bizonyos adatok)

const div = document.getElementById('forTable');
const table = document.createElement('table');
const tbody = document.createElement('tbody');

data.forEach(row => {
  const tr = document.createElement('tr');
  const td1 = document.createElement('td');
  td1.textContent = row.adat1;
  const td2 = document.createElement('td');
  td2.textContent = row.adat2;
  tr.append(td1, td2);
  tbody.appendChild(tr);
});

table.appendChild(tbody);
div.replaceChildren(table);

JavaScript – Táblázat generálás (2. típus)

const createTable = array => {
  const div = document.getElementById('forTable');
  const table = document.createElement('table');
  const thead = document.createElement('thead');
  const trHead = document.createElement('tr');
  const headers = ['Név', 'Kor'];

  headers.forEach(text => {
    const th = document.createElement('th');
    th.textContent = text;
    trHead.appendChild(th);
  });

  thead.appendChild(trHead);
  table.appendChild(thead);

  const tbody = document.createElement('tbody');
  array.forEach(item => {
    const tr = document.createElement('tr');
    [item.nev, item.kor].forEach(val => {
      const td = document.createElement('td');
      td.textContent = val;
      tr.appendChild(td);
    });
    tbody.appendChild(tr);
  });

  table.appendChild(tbody);
  div.appendChild(table);
};

JavaScript – Kattintott táblasor kijelölése

const selectPilotaRows = () => {
  const tbody = document.getElementById('pilotaBody');
  Array.from(tbody.children).forEach(tr => {
    tr.addEventListener('click', () => {
      if (tr.dataset.selected === 'true') {
        tr.dataset.selected = 'false';
        tr.classList.remove('table-active');
      } else {
        Array.from(tbody.children).forEach(row => {
          row.dataset.selected = 'false';
          row.classList.remove('table-active');
        });
        tr.dataset.selected = 'true';
        tr.classList.add('table-active');
      }
    });
  });
};

JavaScript – Select feltöltése Fetch segítségével

const fillSelect = async url => {
  const select = document.getElementById('selectList');
  try {
    const response = await fetch(url);
    if (!response.ok) throw new Error(response.status);
    const data = await response.json();
    data.result.forEach(item => {
      const option = document.createElement('option');
      option.textContent = item.csapatnev;
      option.value = item.csapatnev;
      option.dataset.id = item.csapatazonosito;
      select.appendChild(option);
    });
  } catch (error) {
    console.log(`Hiba történt: ${error}`);
  }
};

JavaScript – Select aktív option adat lekérdezése

const select = document.getElementById('select');
const selectedOption = select.options[select.selectedIndex].dataset.id;

JavaScript – Város szerkesztése (db.queries példa)

function editVaros(formData, id) {
  return new Promise((resolve, reject) => {
    const { vnev, jaras, kisterseg, nepesseg, terulet } = formData;
    const sql = `
      UPDATE varos
      SET vnev = ?, jaras = ?, kisterseg = ?, nepesseg = ?, terulet = ?
      WHERE id = ?;
    `;
    const values = [vnev, jaras, kisterseg, nepesseg, terulet, id];
    pool.query(sql, values, (err, result) => {
      if (err) return reject(err);
      resolve(result);
    });
  });
}

JavaScript – Összegzés (Elemi tétel)

function osszegzes(arr) {
  let sum = 0;
  for (let i = 0; i < arr.length; i++) {
    sum += arr[i];
  }
  return sum;
}

JavaScript – Megszámlálás (Elemi tétel)

function megszamlalas(arr, condition) {
  let count = 0;
  for (let i = 0; i < arr.length; i++) {
    if (condition(arr[i])) count++;
  }
  return count;
}

JavaScript – Szélsőérték keresés (Elemi tétel)

function minErtek(arr) {
  let min = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < min) min = arr[i];
  }
  return min;
}

function maxErtek(arr) {
  let max = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > max) max = arr[i];
  }
  return max;
}

JavaScript – Eldöntés (Elemi tétel)

function eldontes(arr, condition) {
  for (let i = 0; i < arr.length; i++) {
    if (condition(arr[i])) return true;
  }
  return false;
}

JavaScript – Kiválogatás (Elemi tétel)

function kivalogatas(arr, condition) {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    if (condition(arr[i])) result.push(arr[i]);
  }
  return result;
}

JavaScript – Szétválogatás (Elemi tétel)

function szetvalogatas(arr, condition) {
  const megfelel = [];
  const nemMegfelel = [];
  for (let i = 0; i < arr.length; i++) {
    if (condition(arr[i])) megfelel.push(arr[i]);
    else nemMegfelel.push(arr[i]);
  }
  return [megfelel, nemMegfelel];
}

JavaScript – Keresés (Elemi tétel)

function kereses(arr, condition) {
  for (let i = 0; i < arr.length; i++) {
    if (condition(arr[i])) return arr[i];
  }
  return null;
}

JavaScript – Rendezés (Elemi tétel)

function novekvo(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] > arr[j]) {
        [arr[i], arr[j]] = [arr[j], arr[i]];
      }
    }
  }
  return arr;
}

function csokkeno(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] < arr[j]) {
        [arr[i], arr[j]] = [arr[j], arr[i]];
      }
    }
  }
  return arr;
}

JavaScript – Változók deklarálása & adattípusok

// Deklarálás:
const q = 10;     // nem változik
let w = 3;        // változhat
// kerülendő: automatikus globális
k = q + w;

// Adattípusok
let length = 5;                // Number
let weight = 9.2;              // Number
let szin = 'Piros';            // String
let x = true, y = false;       // Boolean
const ember = { vezetekNev: 'Kis', keresztNev: 'Pista' }; // Object
const autok = ['Audi', 'Opel', 'BMW'];                  // Array
const egyDatum = new Date('2022-03-25');                // Date