Backend - node.js és express használatával
Backend: Alkalmazás belső működése, kapcsolat az adatbázissal, hátsó folyamatok kezelése.
Backend létrehozása (node.js, express):
1. Backend mappa létrehozása. Ide dolgozunk. Ajánlott Visual Studio Code használata. (Konzol indítása ctrl+ö)
2. Parancsok:
- npm init -y - szerkezet létrehozása
- npm install <csomag> - csomag telepítése, rövidíthető npm i-ként
- npm i -g nodemon (futtatókörnyezet)
- npm i express - keretrendszer installációja
- npm run <scriptnév> - alkalmazás futtatása
- npm i cors - portok szinkronizálásnak kelléke
- npm i mysql2 - adatbáziskezelő nodeok installációja
Az app komponensei a package.json nevű fájlban vannak felsorolva, json fromátumban. Itt kell nodemonnal együtt meghívni.
Példa:
{
"name": "backend",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"dev": "nodemon server.js"
},
Így a futtatóparancs a "dev" névvel tudja majd indítani az alkalmazást, ami a server.js fájlba íródott.
4. Backend megírása a server.js fájlba:
Példa - egy backend, ami tartalmaz egy POST és egy GET utasítást, egy dolgozók nevű adatbázis felé kommunikálva:
const express = require('express'); //express felvétele
const mysql = require('mysql'); //mysql felvétele
const app = express(); // az app használja az expresst
const port = 3000; // a kommunikációhoz használ port
const cors = require('cors'); // az app használja a corst
app.use(express.json());
app.use(cors());
const db = mysql.createConnection({ //mysql konnektor, ami kommunikál a mysql-el
host: 'localhost',
user: 'root',
password: '',
database: 'munka_teszt'
});
db.connect(err => {
if (err) {
console.error('Database connection failed:', err);
return;
}
console.log('Connected to MySQL database');
});
// GET: Összes dolgozó lekérése
app.get('/api/dolgozo', (req, res) => {
db.query('SELECT * FROM dolgozok', (err, results) => {
if (err) return res.status(401).json({ error: 'Failed to fetch records' });
res.status(201).json(results);
});
});
// POST: Új dolgozó hozzáadása
app.post('/api/dolgozo', (req, res) => {
const { name, email } = req.body;
if (!name || !email) {
return res.status(401).json({ error: 'Missing required fields' });
}
const sql = 'INSERT INTO dolgozok (name, email) VALUES (?, ?)';
db.query(sql, [name, email], (err, result) => {
if (err) return res.status(401).json({ error: 'Failed to create record' });
res.status(201).json({ message: 'Record created successfully', id: result.insertId });
});
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});
Megjegyzések
Megjegyzés küldése