Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:express:sequelize_mariadb_es

< Express

Express - MariaDB ES

VSCode

Ajánlott bővítmények:

  • SQLTools
  • SQLTools MySQL/MariaDB/TiDB

Az akciósávon létrejön a henger alakú ikon. Itt tudunk adatbázis-kapcsolatokat felvenni.

Az adatbázis-kapcsolat a következő helyen tárolódik:

  • .vscode/settings.json

A dora projekt

Projekt elkészítése

mkdir dora
cd dora

A kezdeti könyvtárszerkezet:

dora/
  `-database/
      `-create.sql

Adatbázis

Készítsünk egy adatbázist.

database/create.sql
-- adatbázis létrehozása
create database dora
character set utf8
collate utf8_hungarian_ci;
 
-- felhasználó létrehozása
grant all privileges 
on dora.*
to dora@localhost
identified by 'titok';

Alkalmazás

Tegyük a projektet Node.js projektté.

npm init -y
npm install sequelize mariadb
dora/
  |-app/
  |  `-database/
  |      `-database.js
  |-database.sql
  `-package.json

A package.json fájlban javítsuk a type kulcs értékét, module-ra:

package.json
{
  "type": "module"
}

Az adatbázishoz kapcsolódás:

app/database/database.js
import { Sequelize } from "sequelize";
 
const sequelize = new Sequelize({
  dialect: "mariadb",
  host: "localhost",
  port: 3306,
  username: "emp",
  password: "titok",
  database: "emp"
 
});
 
await sequelize.authenticate();

Futtatás:

node app/database/database.js
A database.js fájlt nem kötelező az app/database/ könyvtárba tenni, de később oda fog kerülni.

Hibakezelés

Esetleg egészítsük ki:

app/database/database.js
import { Sequelize } from "sequelize";
 
const sequelize = new Sequelize({
  dialect: "mariadb",
  host: "localhost",
  port: 3306,
  username: "emp",
  password: "titok",
  database: "emp"
 
});
 
try {
  await sequelize.authenticate()
  console.log('Ok')
}catch (err) {
  console.error('Hiba!')
  console.error(err)
}

Modell létrehozása

app/database/database.js
import { Sequelize } from "sequelize";
 
const sequelize = new Sequelize({
  dialect: "mariadb",
  host: "localhost",
  port: 3306,
  username: "emp2",
  password: "titok",
  database: "emp2"
 
});
 
const Employee = sequelize.define('employee', {
  id: {
    type: Sequelize.INTEGER,
    autoIncrement: true,
    allowNull: false,
    primaryKey: true
  },
  name: {
    type: Sequelize.STRING,
    allowNull: false
  },
  city: {
    type: Sequelize.STRING,
    allowNull: true
  },
  salary: {
    type: Sequelize.DOUBLE,
    allowNull: true
  }
});
 
await sequelize.sync({
    alter: true
});
 
Employee.create({
  name: 'Erős István',
  city: 'Szeged',
  salary: 392
});

Az alter: true az adatok megtartásával szinkronizál.

oktatas/web/express/sequelize_mariadb_es.txt · Utolsó módosítás: 2025/08/22 13:35 szerkesztette: admin