Sobes.tech
Junior

Milliseid tööriistu või tehnoloogiaid kasutate andmebaasidega töötamisel?

sobes.tech AI

Vastus AI-lt

Node.js-s kasutamiseks andmebaasidega töötamisel kasutan järgmisi tööriistu ja tehnoloogiaid:

  • ORM/ODM:
    • Sequelize: Reltatsiooniliste andmebaaside jaoks (PostgreSQL, MySQL, SQLite, SQL Server). Pakub võimsat funktsionaalsust objektide mapimiseks relatsioonilistesse tabelitesse, tehingute, migratsioonide ja valideerimise jaoks.
    • Mongoose: MongoDB andmebaaside jaoks. Objekt-dokument mapimine, andmeskeemid, valideerimine, päringud.
  • Andmebaasi kliendid:
    • pg: Natiivne klient PostgreSQL jaoks.
    • mysql2: Uuenduslikum ja kiirem klient MySQL jaoks võrreldes mysql-ga.
  • Migratsiooni tööriistad:
    • sequelize-cli: Kasutatakse koos Sequelize-ga relatsiooniliste andmebaaside migratsioonide haldamiseks.
    • migrate-mongo: Tööriist MongoDB migratsioonide haldamiseks.
  • Andmebaasi haldamise tööriistad (GUI):
    • DBeaver: Universaalne tööriist erinevat tüüpi andmebaaside jaoks.
    • MongoDB Compass: MongoDB ametlik GUI.
  • Vahemälu:
    • Redis: Kasutan seda sageli andmete vahemällu salvestamiseks andmebaasist, mis vähendab peamise andmebaasi koormust ja kiirendab vastuseid.

Näide Sequelize kasutamisest:

const { Sequelize, DataTypes } = require('sequelize');

// Andmebaasi ühendus
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'postgres' // või 'mysql', 'sqlite', 'mssql'
});

// Mudeli defineerimine
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
    // allowNull vaikimisi on true
  }
}, {
  // Muud mudeli valikud
});

// Mudeli sünkroniseerimine andmebaasiga
async function syncDatabase() {
  await User.sync({ force: true }); // 'force: true' kustutab ja uuesti loob tabeli
  console.log("Andmebaas sünkroniseeritud!");
}

// Näidispäring
async function findUser() {
  const users = await User.findAll();
  console.log(users.map(user => user.toJSON()));
}

// syncDatabase();
// findUser();

Näide Mongoose kasutamisest:

const mongoose = require('mongoose');

// MongoDB andmebaasi ühendus
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });

// Skeemi defineerimine
const userSchema = new mongoose.Schema({
  name: String,
  age: Number
});

// Mudeli loomine
const User = mongoose.model('User', userSchema);

// Dokumenti loomise näide
async function createUser() {
  const user = new User({ name: 'Alice', age: 30 });
  await user.save();
  console.log('Kasutaja salvestatud!');
}

// Päringu näide
async function findUsers() {
  const users = await User.find({ age: { $gte: 25 } });
  console.log(users);
}

// createUser();
// findUsers();

Konkreetse tööriista valik sõltub andmebaasi tüübist (relatsiooniline või NoSQL), projekti nõuetest, päringute keerukusest ning meeskonna eelistustest.