< Express

Express - MariaDB ES

Szerző: Sallai András

Copyright © 2025, Sallai András

Szerkesztve: 2025

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

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.

-- 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:

{ "type": "module" }

Az adatbázishoz kapcsolódás:

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.

A Sequelize() konstruktor több módon is paraméterezhető. Ahogy fentebb is használtuk, megadhatunk csak opciókat, de az opciók előtt megadhatjuk az adatbázis nevet, felhasználónevet és jelszót. Szintaxis:

Sequelize(database: string, username: string, password: string, options: object)

Lehetséges példa:

const Sequelize = require('sequelize'); const sequelize = new Sequelize('emps', 'emps', 'titok', { host: 'localhost', port: 3306, dialect: 'mariadb' });

Hibakezelés

Esetleg egészítsük ki:

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

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.