Ответ
Да, работал. В Node.js для работы с MySQL обычно использую пакет mysql2 (более современная альтернатива mysql) или ORM типа Sequelize.
Пример подключения и простого запроса с mysql2:
const mysql = require('mysql2/promise');
async function queryExample() {
const connection = await mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test_db',
password: 'password'
});
const [rows] = await connection.execute('SELECT * FROM users WHERE id = ?', [1]);
console.log(rows);
await connection.end();
}
queryExample();
Основные моменты:
- Поддержка промисов (
mysql2/promise) для async/await. - Параметризованные запросы для защиты от SQL-инъекций.
- Опыт с миграциями, индексами, JOIN, транзакциями.
- Для сложных проектов предпочитаю Sequelize или TypeORM.
Ответ 18+ 🔞
А, ну это ж классика, ёпта! Работал, конечно, работал. В Node.js с этой самой MySQL, как без неё-то. Обычно беру пакет mysql2 — это типа более свежая версия старого mysql, чтоб не выёбывался. Ну или, если проект серьёзный, то ORM вроде Sequelize подключаю, чтобы не париться с голыми запросами.
Вот, смотри, как обычно выглядит этот цирк с подключением на mysql2:
const mysql = require('mysql2/promise');
async function queryExample() {
const connection = await mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test_db',
password: 'password'
});
const [rows] = await connection.execute('SELECT * FROM users WHERE id = ?', [1]);
console.log(rows);
await connection.end();
}
queryExample();
Что тут важно, блядь, чтобы не накосячить? Во-первых, бери промисы (mysql2/promise), а то заебёшься с коллбэками, как будто на дворе 2012-й год. Во-вторых, всегда, сука, используй параметризованные запросы, вот эти знаки вопроса ?. Это чтобы тебя какой-нибудь умник не взломал через SQL-инъекцию, а то будет тебе хиросима, а не база данных.
Ну и в целом, опыт есть: и миграции эти ебучие писал, и индексы настраивал, чтобы всё летало, и JOIN'ы составлял такие, что сам потом полчаса разбирался, что написал. С транзакциями тоже работал — чтобы либо всё сохранилось, либо откатилось нахуй, если где-то ошибка.
А если проект реально большой и сложный, то лучше взять что-то вроде Sequelize или TypeORM. Это, конечно, свои грабли, но зато не нужно каждый раз вручную SQL-запросы из пальца высасывать, э бошка думай.