Я работаю над стратегиями кеширования для приложения, которое использует knex.js для всего, что связано с SQL. Есть ли способ перехватить запрос, чтобы проверить, можно ли его получить из кэша вместо запроса к базе данных?
Кратко рассмотрим события knex.js, в которых есть событие запроса. Doc: событие запроса вызывается непосредственно перед выполнением запроса, предоставляя данные о запросе, включая свойства __knexUid / __knexTxId соединения и любую другую информацию о запросе, как описано в toSQL. Полезно для регистрации всех запросов в вашем приложении.
Это означает, что можно сделать что-то вроде (также из документов)
.from('users')
.on('query', function(data) {
app.log(data);
})
.then(function() {
// ...
});
Но возможно ли перехватить метод on query исделать некоторую логику, прежде чем на самом деле выполнить запрос к базе данных?