Sobes.tech
Junior

Kokius įrankius ar technologijas naudojate dirbdami su duomenų bazėmis?

sobes.tech AI

Atsakymas iš 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: MongoDB-ға арналған ресми GUI.
  • Кэштеу:
    • 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), жобаның талаптарына, сұраулардың күрделілігіне және командаға байланысты.