2024. szeptember 18., szerda
PHP böngésző problémákra
2024. szeptember 17., kedd
12 B Body-parser modul
A body-parser egy Node.js middleware modul, amely megkönnyíti a bejövő HTTP-kérések body részének kezelését. Ez a modul különösen hasznos akkor, ha az űrlapadatokat vagy JSON-tartalmat szeretnél fogadni és feldolgozni egy POST vagy PUT kérés során az Express-ben.
Miért van szükség a
body-parser-re?
Alapértelmezésben a Node.js és az Express nem képes a
kérések törzsét automatikusan feldolgozni. Ezért van szükség a body-parser
modulra, amely a kérések törzsét elérhetővé teszi a req.body objektumon
keresztül.
Telepítése: npm install body-parser
Példa a használatára:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// A body-parser használata JSON formátumú adatok
feldolgozásához
/* app.use(bodyParser.json()): Ez a middleware lehetővé
teszi, hogy JSON típusú kéréseket tudjunk feldolgozni, így például egy API-ban
érkező JSON adatok a req.body-ban lesznek elérhetők. */
app.use(bodyParser.json());
// A body-parser használata URL-kódolt adatok
feldolgozásához
/* app.use(bodyParser.urlencoded({ extended: true })): Ez az
opció az űrlapokon keresztül küldött URL-kódolt adatokat dolgozza fel (mint a
HTML form elemek application/x-www-form-urlencoded típusa). Az extended: true
opció lehetővé teszi, hogy összetett objektumokat (pl. beágyazott objektumokat)
is kezeljünk. */
app.use(bodyParser.urlencoded({ extended: true }));
// Példa POST kérésre
app.post('/submit', (req, res) => {
const name =
req.body.name;
const email =
req.body.email;
res.send(`Név:
${name}, Email: ${email}`);
});
// A szerver figyel a 3000-es porton
app.listen(3000, () => {
console.log('Szerver
fut a http://localhost:3000 címen');
});
Működés:
Ha egy POST kérés érkezik a /submit útvonalra, például egy
HTML űrlapból, a body-parser feldolgozza a kérést, és az adatokat a req.body
objektumban tárolja. Ezután az adatok hozzáférhetők a további feldolgozáshoz
vagy válaszként történő küldéshez.
Extended beállítás a
urlencoded metódusnál
extended: true: Lehetővé teszi, hogy összetett
adatstruktúrák, például beágyazott objektumok is kezelhetők legyenek (azaz
nemcsak sima string értékeket tudsz fogadni).
extended: false: Csak egyszerű key-value párokat enged
feldolgozni, például az alapvető URL-kódolt formákat.
Az express újabb verzióiban (pl. Express 4.x-től) a
body-parser bizonyos funkciói beépítésre kerültek az Express alapvető
részeként, így külön body-parser telepítése nem mindig szükséges, mivel
használhatod az Express saját beépített módszereit is:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
vagyis nem kell külön telepíteni. Ezért nézzük meg a verzió számot.
12 B Express.js - Bevezetés: Express.js keretrendszer alapjai, routing és middleware
Az Express.js a Node.js egyik legnépszerűbb és legszélesebb körben használt
keretrendszere. Ez egy minimalista és rugalmas webes keretrendszer, amely
egyszerűsíti a webalkalmazások és API-k fejlesztését. Az Express.js a
Node.js-re épül, és lehetővé teszi, hogy gyorsan és hatékonyan fejlesszünk
webes szervereket, mivel számos olyan alapvető funkciót biztosít, amelyekkel
különben kézzel kellene bajlódnunk. Lényegében megkönnyíti a szerveroldali alkalmazások és API-k létrehozását. Az express
sokkal könnyebbé teszi a HTTP-kérések kezelését, az útvonalak definiálását, és middleware-k hozzáadását a request/response ciklushoz.
3.1. Az Express.js Alapjai
Mi az az Express.js?
Az Express.js egy Node.js
alapú, nyílt forráskódú webes alkalmazáskeretrendszer, amelyet főleg
kiszolgálói alkalmazások készítésére használnak. Az Express segítségével
gyorsan és könnyen létrehozhatunk weboldalakat és webes API-kat. Ez a
keretrendszer azért vált népszerűvé, mert megkönnyíti a HTTP kérések és válaszok
kezelését, a különböző útvonalak (routing) beállítását, valamint a
middleware-ek alkalmazását, amelyek speciális funkciókat biztosítanak.
Az Express.js
Telepítése
Mielőtt használni kezdhetjük az Express.js-t, telepítenünk kell. Ehhez először telepíteni kell a Node.js-t, majd a Node Package Manager (npm) segítségével az Express-t.
2.
Express.js telepítése:
- Nyisd meg a terminált (vagy parancssort) és hozd
létre az alkalmazásod mappáját:
mkdir my-express-app
cd my-express-app
- Inicializáld az npm-et a mappában:
npm init -y
- Telepítsd az Express.js-t:
npm install express --save
vagy ha már van saját mappád: npm install express
Egyszerű Express.js
Alkalmazás Létrehozása
Az alábbi kód egy egyszerű Express.js alkalmazás, amely egy HTTP szervert
hoz létre, és válaszol a bejövő kérésekre.
// Az express modul importálása
const express =
require(
'express');
// Egy új express alkalmazás létrehozása
const app =
express();
// Egy útvonal kezelése a gyökér URL-re ('/')
app.
get(
'/',
(req, res) => {
res.
send(
'Hello, Express.js!');
});
// A szerver elindítása és figyelés egy adott porton (3000)
app.
listen(
3000,
() => {
console.
log(
'Szerver fut a http://localhost:3000 címen');
});
1.
const express =
require('express');
:
- Az
express
modul importálása szükséges ahhoz, hogy használni tudjuk az Express.js keretrendszert. Ez a sor betölti az Express modulját, amit később azapp
nevű változóban fogunk használni.
2.
const app = express();
:
- Az
express()
meghívása létrehoz egy új Express alkalmazást, amely egy HTTP szerverként fog viselkedni. Azapp
nevű változóban tároljuk az alkalmazást, hogy később hozzáférjünk a különböző funkcióihoz.
3.
app.get('/', (req, res)
=> { ... });
:
- Itt definiálunk egy útvonalat a gyökér URL-re
(azaz a
/
útvonalra). Ez azt jelenti, hogy ha valaki meglátogatja az alkalmazást a böngészőjében a gyökér URL-en, akkor a megadott callback függvény fut le. - A callback függvény két paramétert kap:
req
(request) ésres
(response). Areq
tartalmazza a kliens által küldött kérés részleteit, ares
pedig azt az objektumot, amellyel válaszolhatunk a kliensnek. - A
res.send('Hello, Express.js!');
sor elküldi a válaszként a "Hello, Express.js!" szöveget a kliensnek.
4.
app.listen(3000, ()
=> { ... });
:
- Ezzel a sorral indítjuk el a szervert, és
megadjuk, hogy melyik porton figyeljen (ebben az esetben a 3000-es
porton). Amikor a szerver sikeresen elindul, a callback függvény fut le,
és kiírja a konzolra, hogy a szerver fut.
3.2. Routing Express.js-ben
A routing az az eljárás, amellyel az alkalmazás
meghatározza, hogyan válaszoljon a bejövő kérésekre egy adott URL-re. Az
Express.js ezt rendkívül egyszerűvé teszi. Különböző HTTP módszereket (pl. GET,
POST, PUT, DELETE) használhatunk, hogy különböző típusú kéréseket kezeljünk.
Erre példának, egy komplex feladatot fogunk megoldani közösen.
3.3. Middleware Az Express.js-ben
A middleware az Express.js egyik legfontosabb
eleme. A middleware-ek olyan függvények, amelyek a bejövő kérések és a
kiszolgált válaszok közötti folyamatokat kezelik. Ezek a függvények lehetővé
teszik, hogy módosítsuk a kérés és válasz objektumokat, befejezzük a kérelem-
és válaszfolyamatot, vagy továbblépjünk a következő middleware-re.
Példa Egy Egyszerű
Middleware-re
const express =
require(
'express');
const app =
express();
// Egy egyszerű middleware, amely minden kérésnél lefut
app.
use(
(req, res, next) => {
console.
log(
`${req.method} kérés érkezett a(z) ${req.url} URL-re`);
next();
// Tovább lép a következő middleware-re vagy útvonalra
});
// Kezelés a gyökér URL-re
app.
get(
'/',
(req, res) => {
res.
send(
'Kezdőlap');
});
// Kezelés az '/about' URL-re
app.
get(
'/about',
(req, res) => {
res.
send(
'About oldal');
});
app.
listen(
3000,
() => {
console.
log(
'Szerver fut a http://localhost:3000 címen');
});
Middleware Kód
Magyarázata
app.use((req, res, next) => { ... });
:- Az
app.use
metódussal definiálunk egy általános middleware-t, amely minden egyes bejövő kérésnél lefut. - A middleware függvény három paramétert kap:
req
(kérés),res
(válasz) ésnext
(egy függvény, amely a következő middleware-t vagy útvonalkezelőt hívja meg). - Ebben az esetben a middleware naplózza a konzolra
a kérés típusát (pl. GET) és a kért URL-t. Ezután a
next()
meghívásával a folyamat továbbhalad a következő middleware-re vagy útvonalkezelőre.
Példák és Gyakorlati
Feladatok
Példa 1: Alapvető
Routing
Hozz létre egy Express.js alkalmazást, amely különböző útvonalakat kezel:
GET /
: Válaszoljon "Főoldal".GET /about
: Válaszoljon "Rólunk".GET /contact
: Válaszoljon "Kapcsolat".GET *
: Válaszoljon "404 - Az oldal nem található", ha a felhasználó egy nem létező oldalra próbál navigálni.
2024. szeptember 16., hétfő
13 backend 9. - Adatbázis műveletek a PHP-ben összefoglaló
-- Minden érték lekérése
SELECT * FROM tablanev;
-- Adott oszlopok lekérése
SELECT oszlop1, oszlop2, oszlop3 FROM tablanev;
-- Az oszlopok nevének körülírása backtick-kel
SELECT `oszlop1`, `oszlop2`, `oszlop3` FROM tablanev;
-- Feltétellel adatlekérés
SELECT * FROM tablanev WHERE feltetel;
-- Adott oszlopok lekérése feltétellel
SELECT oszlop1, oszlop2, oszlop3 FROM tablanev WHERE
feltetel;
-- Keresés LIKE segítségével
SELECT oszlop1, oszlop2, oszlop3 FROM tablanev WHERE oszlop1
LIKE 'kifejezes%'; -- Kezdő kifejezés
SELECT oszlop1, oszlop2, oszlop3 FROM tablanev WHERE oszlop1
LIKE '%kifejezes%'; -- Bármely helyen
-- Rendezés ASC [A-Z-ig], DESC [Z-A-ig]
SELECT * FROM tablanev ORDER BY oszlop1 ASC; -- Növekvő sorrend
SELECT * FROM tablanev ORDER BY oszlop1 DESC; -- Csökkenő sorrend
SELECT * FROM tablanev WHERE feltetel ORDER BY oszlop1
DESC; -- Feltétellel és csökkenő sorrend
SELECT * FROM tablanev WHERE feltetel ORDER BY oszlop1 DESC,
oszlop2 ASC; -- Több oszlop szerinti
rendezés
-- Adott darabszám lekérése
SELECT * FROM tablanev LIMIT 10; -- Az első 10 rekord
SELECT * FROM tablanev LIMIT 10, 10; -- 10-től kezdődő következő 10 rekord
-- Rekord beszúrása
INSERT INTO tablanev (oszlop1, oszlop2, oszlop3) VALUES
('ertek1', ertek2, ertek3);
-- Rekordok törlése
DELETE FROM tablanev WHERE feltetel;
-- Rekordok módosítása
UPDATE tablanev SET oszlop1 = ertek1, oszlop2 = 'ertek2'
WHERE feltetel;
-- Több tábla összekapcsolása JOIN használatával
-- Inner Join: Két tábla közös rekordjait adja vissza
SELECT t1.oszlop1, t2.oszlop2 FROM tabla1 t1
JOIN tabla2 t2 ON t1.kozos_oszlop = t2.kozos_oszlop;
-- Left Join: Az első táblából minden rekordot visszaad, és
a második táblából csak a megfelelő rekordokat
SELECT t1.oszlop1, t2.oszlop2 FROM tabla1 t1
LEFT JOIN tabla2 t2 ON t1.kozos_oszlop = t2.kozos_oszlop;
-- Right Join: A második táblából minden rekordot visszaad,
és az első táblából csak a megfelelő rekordokat
SELECT t1.oszlop1, t2.oszlop2 FROM tabla1 t1
RIGHT JOIN tabla2 t2 ON t1.kozos_oszlop = t2.kozos_oszlop;
-- Union: Két SELECT eredményének egyesítése
SELECT oszlop1 FROM tabla1
UNION
SELECT oszlop1 FROM tabla2;
2024. szeptember 15., vasárnap
12 ikt - before express
A feladat megoldásához az alábbi kódrészletet fogjuk használni:
12 ikt - 3. Express.js Bevezetés: Express.js keretrendszer alapjai, routing és middleware
Az Express.js a Node.js egyik legnépszerűbb és legszélesebb körben használt keretrendszere. Ez egy minimalista és rugalmas webes keretrendszer, amely egyszerűsíti a webalkalmazások és API-k fejlesztését. Az Express.js a Node.js-re épül, és lehetővé teszi, hogy gyorsan és hatékonyan fejlesszünk webes szervereket, mivel számos olyan alapvető funkciót biztosít, amelyekkel különben kézzel kellene bajlódnunk.
Mi az az Express.js?
Az Express.js egy Node.js
alapú, nyílt forráskódú webes alkalmazáskeretrendszer, amelyet főleg
kiszolgálói alkalmazások készítésére használnak. Az Express segítségével
gyorsan és könnyen létrehozhatunk weboldalakat és webes API-kat. Ez a
keretrendszer azért vált népszerűvé, mert megkönnyíti a HTTP kérések és válaszok
kezelését, a különböző útvonalak (routing) beállítását, valamint a
middleware-ek alkalmazását, amelyek speciális funkciókat biztosítanak.
Az Express.js
Telepítése
Mielőtt használni kezdhetjük az Express.js-t, telepítenünk kell. Ehhez
először telepíteni kell a Node.js-t, majd a Node Package Manager (npm)
segítségével az Express-t.
1.
Node.js telepítése:
- Töltsd le és telepítsd a Node.js-t a hivatalos
weboldalról.
- A telepítés során az npm is telepítésre kerül.
2.
Express.js telepítése:
- Nyisd meg a terminált (vagy parancssort) és hozd
létre az alkalmazásod mappáját:
mkdir my-express-app
cd my-express-app
- Inicializáld az npm-et a mappában:
npm init -y
- Telepítsd az Express.js-t:
npm install express --save
Egyszerű Express.js
Alkalmazás Létrehozása
Az alábbi kód egy egyszerű Express.js alkalmazás, amely egy HTTP szervert
hoz létre, és válaszol a bejövő kérésekre.
// Az express modul importálása
const express =
require(
'express');
// Egy új express alkalmazás létrehozása
const app =
express();
// Egy útvonal kezelése a gyökér URL-re ('/')
app.
get(
'/',
(req, res) => {
res.
send(
'Hello, Express.js!');
});
// A szerver elindítása és figyelés egy adott porton (3000)
app.
listen(
3000,
() => {
console.
log(
'Szerver fut a http://localhost:3000 címen');
});
1.
const express =
require('express');
:
- Az
express
modul importálása szükséges ahhoz, hogy használni tudjuk az Express.js keretrendszert. Ez a sor betölti az Express modulját, amit később azapp
nevű változóban fogunk használni.
2.
const app = express();
:
- Az
express()
meghívása létrehoz egy új Express alkalmazást, amely egy HTTP szerverként fog viselkedni. Azapp
nevű változóban tároljuk az alkalmazást, hogy később hozzáférjünk a különböző funkcióihoz.
3.
app.get('/', (req, res)
=> { ... });
:
- Itt definiálunk egy útvonalat a gyökér URL-re
(azaz a
/
útvonalra). Ez azt jelenti, hogy ha valaki meglátogatja az alkalmazást a böngészőjében a gyökér URL-en, akkor a megadott callback függvény fut le. - A callback függvény két paramétert kap:
req
(request) ésres
(response). Areq
tartalmazza a kliens által küldött kérés részleteit, ares
pedig azt az objektumot, amellyel válaszolhatunk a kliensnek. - A
res.send('Hello, Express.js!');
sor elküldi a válaszként a "Hello, Express.js!" szöveget a kliensnek.
4.
app.listen(3000, ()
=> { ... });
:
- Ezzel a sorral indítjuk el a szervert, és
megadjuk, hogy melyik porton figyeljen (ebben az esetben a 3000-es
porton). Amikor a szerver sikeresen elindul, a callback függvény fut le,
és kiírja a konzolra, hogy a szerver fut.
3.2. Routing Express.js-ben
A routing az az eljárás, amellyel az alkalmazás
meghatározza, hogyan válaszoljon a bejövő kérésekre egy adott URL-re. Az
Express.js ezt rendkívül egyszerűvé teszi. Különböző HTTP módszereket (pl. GET,
POST, PUT, DELETE) használhatunk, hogy különböző típusú kéréseket kezeljünk.
Erre példának, egy komplex feladatot fogunk megoldani közösen.
3.3. Middleware Az Express.js-ben
A middleware az Express.js egyik legfontosabb
eleme. A middleware-ek olyan függvények, amelyek a bejövő kérések és a
kiszolgált válaszok közötti folyamatokat kezelik. Ezek a függvények lehetővé
teszik, hogy módosítsuk a kérés és válasz objektumokat, befejezzük a kérelem-
és válaszfolyamatot, vagy továbblépjünk a következő middleware-re.
Példa Egy Egyszerű
Middleware-re
const express =
require(
'express');
const app =
express();
// Egy egyszerű middleware, amely minden kérésnél lefut
app.
use(
(req, res, next) => {
console.
log(
`${req.method} kérés érkezett a(z) ${req.url} URL-re`);
next();
// Tovább lép a következő middleware-re vagy útvonalra
});
// Kezelés a gyökér URL-re
app.
get(
'/',
(req, res) => {
res.
send(
'Kezdőlap');
});
// Kezelés az '/about' URL-re
app.
get(
'/about',
(req, res) => {
res.
send(
'About oldal');
});
app.
listen(
3000,
() => {
console.
log(
'Szerver fut a http://localhost:3000 címen');
});
Middleware Kód
Magyarázata
app.use((req, res, next) => { ... });
:- Az
app.use
metódussal definiálunk egy általános middleware-t, amely minden egyes bejövő kérésnél lefut. - A middleware függvény három paramétert kap:
req
(kérés),res
(válasz) ésnext
(egy függvény, amely a következő middleware-t vagy útvonalkezelőt hívja meg). - Ebben az esetben a middleware naplózza a konzolra
a kérés típusát (pl. GET) és a kért URL-t. Ezután a
next()
meghívásával a folyamat továbbhalad a következő middleware-re vagy útvonalkezelőre.
Példák és Gyakorlati
Feladatok
Példa 1: Alapvető
Routing
Hozz létre egy Express.js alkalmazást, amely különböző útvonalakat kezel:
GET /
: Válaszoljon "Főoldal".GET /about
: Válaszoljon "Rólunk".GET /contact
: Válaszoljon "Kapcsolat".GET *
: Válaszoljon "404 - Az oldal nem található", ha a felhasználó egy nem létező oldalra próbál navigálni.
Megoldás:
const express =
require(
'express');
const app =
express();
app.
get(
'/',
(req, res) => {
res.
send(
'Főoldal');
});
app.
get(
'/about',
(req, res) => {
res.
send(
'Rólunk');
});
app.
get(
'/contact',
(req, res) => {
res.
send(
'Kapcsolat');
});
app.
get(
'*',
(req, res) => {
res.
status(
404).
send(
'404 - Az oldal nem található');
});
app.
listen(
3000,
() => {
console.
log(
'Szerver fut a http://localhost:3000 címen');
});
Példa 2: Middleware
Használata
Adj hozzá egy middleware-t, amely naplózza a bejövő kéréseket és a kért
URL-eket, majd kezelje az alábbi útvonalakat:
GET /
: Válaszoljon "Kezdőlap".GET /about
: Válaszoljon "About oldal".
Megoldás:
const express =
require(
'express');
const app =
express();
app.
use(
(req, res, next) => {
console.
log(
`${req.method} kérés érkezett a(z) ${req.url} URL-re`);
next();
});
app.
get(
'/',
(req, res) => {
res.
send(
'Kezdőlap');
});
app.
get(
'/about',
(req, res) => {
res.
send(
'About oldal');
});
app.
listen(
3000,
() => {
console.
log(
'Szerver fut a http://localhost:3000 címen');
Tanfolyami jelentkezés – HTML űrlap készítése, adatok feldolgozása PHP-val, validációval és formázással
HTML űrlap (jelentkezes.html) Készíts egy HTML oldalt, amely egy tanfolyamra történő jelentkezési űrlapot jelenít meg. Az űrlap legyen ...
-
#összeadás, kivonás, szorzás, osztás, egész számos osztás //; exponenciális #hatványozás **; és moduló operátor szam1 = 5 szam2 = 1...
-
A font-size tulajdonság A betűk méretezésére a font-size tulajdonság szolgál. Lehetséges értékei: Érték Leírás (hossz): a fontméret a...
-
""" Számos beépített függvény létezik a pythonban, ezek közül a leggyakoriabbakat nézzük meg. https://docs.python.org/3/li...