Hasta donde sé, la mayoría de las bases de datos relacionales no ofrecen ninguna API de nivel de controlador para consultas, excepto una queryfunción que toma una cadena SQL como argumento.
Estoy pensando en lo fácil que sería si uno pudiera hacer:
var result = mysql.select('article', {id: 3})
Para tablas unidas, sería un poco más complejo, pero aún posible. Por ejemplo:
var tables = mysql.join({tables: ['article', 'category'], on: 'categoryID'});
mysql.select(tables, {'article.id': 3}, ['article.title', 'article.body', 'category.categoryID'])
Código más limpio, sin gastos generales de análisis de cadenas, sin problemas de inyección, reutilización más fácil de elementos de consulta ... Puedo ver muchas ventajas.
¿Hay alguna razón específica por la que se eligió para proporcionar solo acceso a consultas a través de SQL?