Knex: Funciones de constructor personalizadas

Creado en 15 jul. 2016  ·  3Comentarios  ·  Fuente: knex/knex

Me gustaría agregar algunas funciones personalizadas a knex que tengo que usar todo el tiempo, pero me resulta difícil hacer que funcionen.

Son:
knex.selectOne
knex.selectZeroOrOne

En lugar de hacerlo primero, selectOne no aplica un límite y, en su lugar, arroja un error si recupera más de un registro. Esto le permite al autor detectar errores particulares con una anticipación particular.

Empecé con:

knex.client.QueryBuilder.prototype.selectOne = function (columns) { 
    const args = new Array(arguments.length);
    for (let i = 0; i < args.length; i++) {
      args[i] = arguments[i];
    }
    this.select.apply(this, args);
    this._method = 'first';
    //this.limit(1);
    return this;
}

pero, obviamente, la verificación de cuántos registros se devuelven debe realizarse después de que se hayan obtenido los resultados.

¿Podrías indicarme la dirección correcta?

planned for 1.0

Comentario más útil

@tgriesser Tengo esperando esta función por un tiempo y empiezo a modificar el prototipo QueryBuilder . Será genial tener una interfaz para ampliar el generador de consultas.

👍

Todos 3 comentarios

Solo para su información Este código no funcionará en 0.12, deberá requerir knex/lib/query/builder directamente para modificar ese prototipo.

Para 1.0, planearé definir una forma estándar de personalizar la cadena del generador de consultas como está tratando de hacer anteriormente, y con la adición de "ganchos", podrá configurar fácilmente las transformaciones posteriores al resultado.

@tgriesser Tengo esperando esta función por un tiempo y empiezo a modificar el prototipo QueryBuilder . Será genial tener una interfaz para ampliar el generador de consultas.

👍

@tgriesser - ¿Qué tan lejos estamos de 1.0?

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

tjwebb picture tjwebb  ·  3Comentarios

hyperh picture hyperh  ·  3Comentarios

aj0strow picture aj0strow  ·  3Comentarios

olaferlandsen picture olaferlandsen  ·  3Comentarios

koskimas picture koskimas  ·  3Comentarios