Sobes.tech
Junior

Кадом асбобҳо ё технологияҳоро барои кор бо базаи маълумотҳо истифода мебаред?

sobes.tech AI

Ҷавоб аз AI

Барои кор бо базаҳои маълумот дар Node.js ман аз асбобҳо ва технологияҳои зерин истифода мебарам:

  • ORM/ODM:
    • Sequelize: Барои базаҳои маълумоти релясионӣ (PostgreSQL, MySQL, SQLite, SQL Server). Функсияҳои қавӣ барои маппинг кардани объектҳо ба ҷадвалҳои релясионӣ, транзаксияҳо, миграцияҳо ва валидасияҳоро пешниҳод мекунад.
    • Mongoose: Барои базаҳои маълумоти MongoDB. Маппинг объектӣ-дастҷамъӣ, схемаҳо, валидасия, дархостҳо.
  • Мизоҷони базаи маълумот:
    • pg: Мизоҷи табиӣ барои PostgreSQL.
    • mysql2: Мизоҷи муосир ва тезтар барои MySQL нисбат ба mysql.
  • Асбобҳои миграция:
    • sequelize-cli: Дар пайванд бо Sequelize барои идоракунии миграцияҳои базаи маълумотҳои релясионӣ.
    • migrate-mongo: Асбоб барои идоракунии миграцияҳо дар MongoDB.
  • Асбобҳои идоракунии базаи маълумот (GUI):
    • DBeaver: Асбоби умумӣ барои намудҳои гуногуни базаҳои маълумот.
    • MongoDB Compass: GUI-и расмии MongoDB.
  • Кэшгузорӣ:
    • Redis: Ман ба он барои кэшгузории маълумот аз базаи маълумот истифода мебарам, ки борро ба базаи асосӣ кам мекунад ва ҷавобҳоро суръат мебахшад.

Масалан истифодаи Sequelize:

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

// Пайвастшавӣ ба базаи маълумот
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'postgres' // ё 'mysql', 'sqlite', 'mssql'
});

// Тарзи модели
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
    // allowNull ба таври пешфарз true
  }
}, {
  // Вариантҳои дигар барои модел
});

// Синхронизатсия кардани модел бо базаи маълумот
async function syncDatabase() {
  await User.sync({ force: true }); // 'force: true' ҷадвалро тоза мекунад ва дубора месозад
  console.log("Базаи маълумот ҳамоҳанг шуд!");
}

// Мисоли дархост
async function findUser() {
  const users = await User.findAll();
  console.log(users.map(user => user.toJSON()));
}

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

Масалан истифодаи Mongoose:

const mongoose = require('mongoose');

// Пайвастшавӣ ба базаи маълумоти MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });

// Тарзи схемаи
const userSchema = new mongoose.Schema({
  name: String,
  age: Number
});

// Тарзи модел
const User = mongoose.model('User', userSchema);

// Мисоли эҷоди ҳуҷҷат
async function createUser() {
  const user = new User({ name: 'Alice', age: 30 });
  await user.save();
  console.log('Ҳуҷҷат сабт шуд!');
}

// Мисоли дархост
async function findUsers() {
  const users = await User.find({ age: { $gte: 25 } });
  console.log(users);
}

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

Интихоби асбобҳои мушаххас вобаста ба навъи базаи маълумот (релясионӣ ё NoSQL), талаботи лоиҳа ба абстраксия ва мураккабии дархостҳо, инчунин афзалиятҳои гурӯҳ мебошад.