Sobes.tech
Junior

Verilənlər bazaları ilə işləmək üçün hansı alətlər və ya texnologiyaları istifadə edirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Node.js-də verilənlər bazaları ilə işləmək üçün aşağıdakı alətləri və texnologiyaları istifadə edirəm:

  • ORM/ODM:
    • Sequelize: Əlaqəli verilənlər bazaları üçün (PostgreSQL, MySQL, SQLite, SQL Server). Obiektlərin əlaqəli cədvəllərə xəritələşdirilməsi, tranzaksiyalar, köçürmələr və doğrulama üçün güclü funksiyalar toplusu təmin edir.
    • Mongoose: MongoDB verilənlər bazaları üçün. Ob- sənəd xəritələşdirmə, məlumat sxemləri, doğrulama, sorğular.
  • Verilənlər bazası müştəriləri:
    • pg: PostgreSQL üçün yerli müştəri.
    • mysql2: mysql ilə müqayisədə daha müasir və daha sürətli MySQL müştərisi.
  • Köçürmə alətləri:
    • sequelize-cli: Əlaqəli verilənlər bazaları üçün köçürmələri idarə etmək üçün istifadə olunur.
    • migrate-mongo: MongoDB-də köçürmələri idarə etmək üçün alət.
  • Verilənlər bazası idarəetmə alətləri (GUI):
    • DBeaver: Müxtəlif növ verilənlər bazaları üçün ümumi vasitə.
    • MongoDB Compass: MongoDB üçün rəsmi GUI.
  • Keşləmə:
    • Redis: Tez-tez verilənlər bazasından məlumatların keşlənməsi üçün istifadə olunur, bu da əsas verilənlər bazəsinə yükü azaldır və cavab müddətini sürətləndirir.

Sequelize istifadə nümunəsi:

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

// Verilənlər bazasına qoşulma
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'postgres' // və ya 'mysql', 'sqlite', 'mssql'
});

// Modelin təyin olunması
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
    // allowNull standart olaraq true-dir
  }
}, {
  // Digər model seçimləri
});

// Modeli verilənlər bazası ilə sinxronizasiya etmək
async function syncDatabase() {
  await User.sync({ force: true }); // 'force: true' cədvəli siləcək və yenidən yaradacaq
  console.log("Verilənlər bazası sinxronizasiya edildi!");
}

// Sorğu nümunəsi
async function findUser() {
  const users = await User.findAll();
  console.log(users.map(user => user.toJSON()));
}

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

Mongoose istifadə nümunəsi:

const mongoose = require('mongoose');

// MongoDB-ə qoşulma
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });

// Sxem təyin olunması
const userSchema = new mongoose.Schema({
  name: String,
  age: Number
});

// Modelin yaradılması
const User = mongoose.model('User', userSchema);

// Sənədin yaradılması nümunəsi
async function createUser() {
  const user = new User({ name: 'Alice', age: 30 });
  await user.save();
  console.log('İstifadəçi yadda saxlanıldı!');
}

// Sorğu nümunəsi
async function findUsers() {
  const users = await User.find({ age: { $gte: 25 } });
  console.log(users);
}

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

Xüsusi bir alət seçimi, verilənlər bazası növündən (əlaqəli və ya NoSQL) layihənin abstraksiyası və sorğu mürəkkəbliyi tələblərinə və komandanın üstünlüklərinə bağlıdır.