Tartalomjegyzék

< Express

Express - Kezdés

Az Expressről

Az Express segítségével gyorsan készíthetünk webalkalmazást JavaScript nyelven, Node.js alapokon.

Kezeli a HTTP kéréseket, támogatja a middleware használatát.

VSCode

Bővítmény:

Projekt készítése

Készítsünk egy Node.js projektet:

yarn init -y

Lesz egy ilyen package.json állommányunk:

package.json
{
  "name": "app04",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
}

Telepítsük az express csomagot:

pnpm install express

Hozzuk létre az src könyvtárban az index.js állományt, a következő tartalommal:

app/index.js
const express = require('express');
const app = express();
 
app.get('/', (req, res) => {
    res.send('helló')
});
 
app.listen(8000);

Indítsunk el a szervert:

 node src

Teszteljük curl vagy http paranccsal, vagy más HTTP klienssel.

http localhost:8000

A szervert a Ctrl+C billentyűvel állíthatjuk le.

A listen() függvény

A listen() függvény képes fogadni második paraméterként egy callback függvényt. Írjunk egy névtelen függvényt, ami kiírja milyen porton fut a szerver:

app.listen(8000, () => {
    console.log('Listening: localhost:8000');
});

Ha most elindítjuk a szervert, informál bennünket arról, hogy a localhost:8000 címen és porton figyel.

A port változóba:

const port = 8000;
app.listen(port, () => {
    console.log(`Listening: localhost:${port}`);
});

Végpont

Most adjunk valamilyen végpontot a szerverünkhöz. Legyen például egy product nevű végpont:

app.get('/product', (req, res) => {
    res.send('termék')
});

Indítsuk újra a szervert:

node src

Teszteljük:

http localhost:8000/product

A nodemon

A nodemon lehetővé teszi, hogy ne kelljen minden fejlesztés után, újraindítanunk a szervert.

Telepítsük:

pnpm install --save-dev nodemon

Írjunk egy scriptet a package.json fájlban:

{
    "scripts":
        "start": "nodemon src --watch src"
}

Ha fut a szerver állítsuk le, majd indítsuk újra a start script segítségével:

npm start

Teszteljük az elérést:

http localhost:8000/product

Külön routing

app/routes.js
const Router = require('express');
const router = Router();
 
router.get('/product', (req, res) => {
    res.send('termék')
});
 
module.exports = router;
app/index.js
const express = require('express');
const app = express();
const router = require('./routes');
 
app.use('/api',router);
 
app.listen(8000, () => {
    console.log('Listening: localhost:8000');
});

Tesztelés:

http localhost:8000/api/product

JSON válasz

JSON választ a json() függvénnyel készíthetünk:

app/routes.js
const Router = require('express');
const router = Router();
 
router.get('/product', (req, res) => {
    res.json({ name: 'memória'});
});
 
module.exports = router;

Metódusok

Minden HTTP metódushoz tartozik egy függvény: get(), post(), put(), path(), delete().

app/routes.js
const Router = require('express');
const router = Router();
 
router.get('/product', (req, res) => {
    res.json({ msg: 'get metódus'});
});
router.post('/product', (req, res) => {
    res.json({ msg: 'post metódus'});
});
router.put('/product', (req, res) => {
    res.json({ msg: 'put metódus'});
});
router.patch('/product', (req, res) => {
    res.json({ msg: 'patch metódus'});
});
router.delete('/product', (req, res) => {
    res.json({ msg: 'delete metódus'});
});
 
module.exports = router;

Teszteljük őket a http paranccsal:

http localhost:8000/api/product

http post localhost:8000/api/product

http put localhost:8000/api/product

http patch localhost:8000/api/product

http delete localhost:8000/api/product