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
3. server.js létrehozása, scriptként való meghívása

    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}`);

});


A kapcsolat tesztelhető postman, vagy a Visual Studio Code egy extensionjének, a Thunder Clientek a használatával.

Megjegyzések

Népszerű bejegyzések ezen a blogon

Szoftverfejlesztő anyagok!

Frontend - React használatával