Knex: Pregunta sobre el uso de then () con Knex.js y Postgres

Creado en 16 ene. 2014  ·  3Comentarios  ·  Fuente: knex/knex

Estoy tratando de usar then () para encadenar mi tabla de creación y la inserción de filas.
Se crea la tabla pero no se realiza ninguna inserción (no se detecta ningún error).
¿Alguien puede decirme dónde estoy equivocado?

Gracias
Minnesota

var Promise = require ('pájaro azul');
var Knex = require ('knex');
Knex.knex = Knex.initialize ({
cliente: 'pg',
conexión: {
...
},
debug: verdadero
});
var knex = require ('knex'). knex;
knex.schema.createTable ('departamento', función (tabla) {
table.increments ('department_id'). primary (). notNullable ();
table.string ('nombre_departamento', 80) .unique (). notNullable ();
table.string ('nombre_del_edificio', 40);
}). luego (función () {
console.log ('se ha creado la tabla de departamentos');
knex ('departamento'). insertar (
[{nombre_departamento: 'Nano Tecnología', nombre del edificio: 'bloque-A'},
{nombre_departamento: 'Ingeniería mecánica', nombre_del_edificio: 'block-C'}]
'departamento_id'
);
}). luego (función () {
console.log ('departamentos insertados');
}). catch (función (e) {
console.log (e);
});

question

Comentario más útil

Tiene que return su knex insertar declaración, o agregarle controladores (usando then o catch / caught ), de lo contrario, solo está creando una instancia builder pero en realidad no está ejecutando la consulta. Cuando llama a métodos como insert , select , from etc., básicamente todos los métodos del generador de consultas, solo modificará su estado interno, pero no ejecutará la consulta. . Eso solo sucederá cuando agregue uno o más controladores a la instancia usando then , catch / caught , lastly / finally , tap o exec , porque esto creará el Promise real, que envía la consulta al cliente de la base de datos.

Todos 3 comentarios

Tiene que return su knex insertar declaración, o agregarle controladores (usando then o catch / caught ), de lo contrario, solo está creando una instancia builder pero en realidad no está ejecutando la consulta. Cuando llama a métodos como insert , select , from etc., básicamente todos los métodos del generador de consultas, solo modificará su estado interno, pero no ejecutará la consulta. . Eso solo sucederá cuando agregue uno o más controladores a la instancia usando then , catch / caught , lastly / finally , tap o exec , porque esto creará el Promise real, que envía la consulta al cliente de la base de datos.

Knex y Bookshelf son geniales. Muchas gracias

  • Minnesota

El 16 de enero de 2014, a las 13:17, Johannes Lumpe [email protected] escribió:

Debe devolver su declaración de inserción de knex o agregarle controladores (usando then o catch / catch), de lo contrario, solo está creando una instancia de constructor pero en realidad no está ejecutando la consulta. Cuando llame a métodos como insertar, seleccione, desde etc. - básicamente todos los métodos del generador de consultas - solo modificará su estado interno, pero no ejecutará la consulta. Eso solo sucederá cuando agregue uno o más controladores a la instancia usando then, catch / catch, last / finalmente, tap o exec, porque esto creará la Promise real, que envía la consulta al cliente de la base de datos.

-
Responda a este correo electrónico directamente o véalo en GitHub.

¡De nada!

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

Temas relacionados

PaulOlteanu picture PaulOlteanu  ·  3Comentarios

fsebbah picture fsebbah  ·  3Comentarios

mishitpatel picture mishitpatel  ·  3Comentarios

nklhrstv picture nklhrstv  ·  3Comentarios

rarkins picture rarkins  ·  3Comentarios