Knex.js — популярный конструктор запросов для Node.js, который позволяет взаимодействовать с базами данных с помощью гибкого и интуитивно понятного API. Одной из мощных функций Knex.js является возможность писать необработанные SQL-запросы. В этой статье мы рассмотрим несколько методов использования Knex Raw с несколькими параметрами, попутно предоставляя вам практические примеры кода.
Метод 1: использование Knex Raw с интерполяцией
const name = 'John Doe';
const age = 25;
knex.raw('SELECT * FROM users WHERE name = ? AND age = ?', [name, age])
.then((results) => {
// Handle query results here
})
.catch((error) => {
// Handle errors here
});
Метод 2: использование Knex Raw с именованными привязками
const name = 'John Doe';
const age = 25;
knex.raw('SELECT * FROM users WHERE name = :name AND age = :age', { name, age })
.then((results) => {
// Handle query results here
})
.catch((error) => {
// Handle errors here
});
Метод 3: использование Knex Raw с литералом шаблона
const name = 'John Doe';
const age = 25;
knex.raw(`SELECT * FROM users WHERE name = '${name}' AND age = ${age}`)
.then((results) => {
// Handle query results here
})
.catch((error) => {
// Handle errors here
});
Метод 4. Использование Knex Raw с привязками массива
const conditions = [
{ column: 'name', value: 'John Doe', operator: '=' },
{ column: 'age', value: 25, operator: '=' },
];
const bindings = conditions.map((condition) => condition.value);
const whereClause = conditions.map((condition) => `${condition.column} ${condition.operator} ?`).join(' AND ');
knex.raw(`SELECT * FROM users WHERE ${whereClause}`, bindings)
.then((results) => {
// Handle query results here
})
.catch((error) => {
// Handle errors here
});
Метод 5: использование Knex Raw с подзапросом
const subquery = knex('orders')
.select('user_id')
.whereRaw('total_amount > ?', [100]);
knex('users')
.select('*')
.whereIn('id', subquery)
.then((results) => {
// Handle query results here
})
.catch((error) => {
// Handle errors here
});
В этой статье мы рассмотрели пять мощных методов использования Knex Raw с несколькими параметрами. Эти методы позволяют вам писать собственные SQL-запросы, используя при этом преимущества Knex.js, такие как композиция запроса и привязка параметров. Включив эти методы в свои проекты, вы сможете добиться большей гибкости и контроля при работе с базами данных в своих приложениях Node.js.
Не забывайте проявлять осторожность при использовании необработанных SQL-запросов, чтобы предотвратить атаки с использованием SQL-инъекций. Всегда проверяйте и очищайте вводимые пользователем данные, прежде чем включать их в свои запросы.
Используя возможности Knex.js и его возможности необработанных запросов, вы можете раскрыть весь потенциал взаимодействия с базами данных в своих проектах Node.js.