Készítsünk egy projektet lite néven.
mkdir lite cd lite npm init -y npm install sequelize sqlite3
lite/ |-app/ | `-database/ | `-database.js |-database.sqlite `-package.json
A package.json fájlban javítsuk a type kulcs értékét, module-ra:
{ "type": "module" }
Az adatbázisihoz kapcsolódás:
import { Sequelize } from "sequelize"; export const sequelize = new Sequelize({ dialect: "sqlite", storage: "./database.sqlite3", }); await sequelize.authenticate();
Futtatás:
node app/database/database.js
Sequelize() konstruktor paraméterezése | |||
---|---|---|---|
Név | Típus | Tulajdonság | Leírás |
database | sztring | opcionális | Adatbázis neve |
username | sztring | opcionális | Felhasználó azonosításhoz |
password | sztirng | opcionális | Jelszó azonosításhoz |
options | objektum | opcionális | További beállítások |
options.host | sztring | opcionális (alapértelmezett 'localhost') | Az adatbázis hostja |
options.port | szám | opcionális | Az adatbázis szerver portja |
options.dialect | sztring | opcionális | Milyen adatbázishoz kapcsolódunk |
options.username | sztring | opcionális | Felhasználónév azonosításhoz |
options.password | sztring | opcionális | Jelszó azonosításhoz |
options.database | sztring | opcionális | Adatbázis neve |
options.storage | sztring | opcionális | Adatbázis típusa |
További opciók:
Esetleg egészítsük ki:
import { Sequelize } from "sequelize"; export const sequelize = new Sequelize({ dialect: "sqlite", storage: "./database.sqlite3", }); try { await sequelize.authenticate() console.log('Ok') }catch (err) { console.error('Hiba!') console.error(err) }
import { Sequelize } from "sequelize"; const sequelize = new Sequelize({ dialect: "sqlite", storage: "database.db" }); 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 }); await Employee.create({ name: 'Erős István', city: 'Szeged', salary: 392 });
Ha van egy Employee objektumunk, használhatjuk a CRUD műveletek elvégzésére.
Az összes dolgozó lekérdezése:
const emps = await Employee.findAll();
JSON formára:
const res = await Employee.findAll(); console.log(res.map(e => e.toJSON()));
Egy új dolgozó létrehozása:
await Employee.create({ name: 'Erős István', city: 'Szeged', salary: 392 });
A 2-s azonosítójú dolgozó letöltése:
const emp = Employee.findOne({ where: { id: 2 } });
A 2-s azonosítójú dolgozó nevének frissítése:
const emp = await Employee.findOne({ where: { id: 2 } }); emp.name = "John Doe"; await emp.save();
A 3-s dolgozó törlése:
const emp = await Employee.findOne({ where: { id: 3 } }); await emp.destroy();
import { Sequelize } from "sequelize"; const sequelize = new Sequelize({ dialect: "sqlite", storage: "database.db" }); const [ results, metadata ] = await sequelize.query(` SELECT * FROM employees `); console.log(results);
Létrehozzuk a Node.js projektet, benne az app könyvtár tartalmával és egy .env állománnyal.
Szerkezet:
app01/ |-app/ | `-database/ | `-database.js |-.env `-package.json
A package.json fájlban a type kulcs értékét állítsuk module-ra.
{ "type": "module" }
Nézzük meg, hogyan tesszük a beállítások külön fájlba. Egy .env fájlt fogunk használni, amit a projekt gyökérkönyvtárában teszünk.
npm install dotenv
DB_DIALECT=sqlite DB_STORAGE=database.sqlite
A DB_DIALECT kulcsban tároljuk, hogy milyen adatbázis típust akarunk használni, ami esetünkben Sqlite. A DB_STORAGE kulcsban mondjuk meg, hogy az Sqlite adatbázis állománynak mi legyen a neve.
Készítsük el az app/database/database.js állományt:
import dotenv from 'dotenv' dotenv.config() /* Kiíratjuk a .env fájl tartalmából a DB_DIALECT tulajdonságot: */ console.log(process.env.DB_DIALECT);
Futtassuk:
node app/database/database.js
Megjelenik a DB_DIALECT tartalma:
sqlite
Kísérletképpen kiírathatjuk a DB_STORAGE kulcs értékét is.
Van egy beállítás fájlunk, amiből ki tudjuk olvasni kulcsok értékeit.
Most üzemeljük be az Sqlite adatbázist. Ehhez telepíteni kell a sqlite3 és az sequelize csomagot.
npm install sqlite3 sequelize
import dotenv from 'dotenv' dotenv.config() import { Sequelize } from 'sequelize' const sequelize = new Sequelize({ dialect: process.env.DB_DIALECT, storage: process.env.DB_STORAGE }) //Ellenőrzés try { await sequelize.authenticate() console.log('Ok') } catch (err) { console.error('Hiba!') console.error(err) }
Futtassuk:
node app/database/database.js
Ha nem hibáztunk, a projekt gyökérkönyvtárában létrejön a database.sqlite állomány.
Beállíthatunk memóriaadatbázist is. A memóriaadatbázis csak addig létezik, amíg fut a szerver. Ebben az esetben nem jön létre állomány, mivel minden csak a memóriában tárolódik. Memóriaadatbázisok például akkor hasznosak, ha tesztelni akarunk.
DB_DIALECT=sqlite DB_STORAGE=:memory: