Knex: Frage zur Verwendung von then () mit Knex.js und Postgres

Erstellt am 16. Jan. 2014  ·  3Kommentare  ·  Quelle: knex/knex

Ich versuche dann () zu verwenden, um meine Erstelltabelle zu verketten und Zeilen einzufügen.
Die Tabelle wird erstellt, es erfolgt jedoch kein Einfügen (es wird kein Fehler abgefangen).
Kann mir jemand sagen, wo ich falsch liege?

Vielen Dank
MN

var Promise = require ('bluebird');
var Knex = erfordern ('knex');
Knex.knex = Knex.initialize ({
client: 'pg',
Verbindung: {

},
Debug: wahr
});
var knex = erfordern ('knex'). knex;
knex.schema.createTable ('Abteilung', Funktion (Tabelle) {
table.increments ('department_id'). primary (). notNullable ();
table.string ('department_name', 80) .unique (). notNullable ();
table.string ('Gebäudename', 40);
}). dann (function () {
console.log ('Abteilungstabelle wurde erstellt');
knex ('Abteilung'). einfügen (
[{Abteilungsname: 'Nanotechnologie', Gebäudename: 'Block-A'},
{Abteilungsname: 'Maschinenbau', Gebäudename: 'Block-C'}],
'abteilungs_id'
);
}). dann (function () {
console.log ('Abteilungen eingefügt');
}). catch (Funktion (e) {
console.log (e);
});

question

Hilfreichster Kommentar

Sie müssen entweder return Ihre knex Anweisung einfügen oder Handler hinzufügen (indem Sie then oder catch / caught ). Andernfalls erstellen Sie nur eine builder -Instanz, führen die Abfrage jedoch nicht aus. Wenn Sie Methoden wie insert , select , from usw. aufrufen - im Grunde jede Methode im Abfrage-Generator - ändert sie nur ihren internen Status, führt die Abfrage jedoch nicht aus . Dies geschieht nur, wenn Sie der Instanz einen oder mehrere Handler hinzufügen, indem Sie then , catch / caught , lastly / finally , tap oder exec , da dadurch die tatsächlichen Promise , die die Abfrage an den Datenbankclient senden.

Alle 3 Kommentare

Sie müssen entweder return Ihre knex Anweisung einfügen oder Handler hinzufügen (indem Sie then oder catch / caught ). Andernfalls erstellen Sie nur eine builder -Instanz, führen die Abfrage jedoch nicht aus. Wenn Sie Methoden wie insert , select , from usw. aufrufen - im Grunde jede Methode im Abfrage-Generator - ändert sie nur ihren internen Status, führt die Abfrage jedoch nicht aus . Dies geschieht nur, wenn Sie der Instanz einen oder mehrere Handler hinzufügen, indem Sie then , catch / caught , lastly / finally , tap oder exec , da dadurch die tatsächlichen Promise , die die Abfrage an den Datenbankclient senden.

Knex und Bücherregal sind großartig. Vielen Dank

  • MN

Am 16. Januar 2014, um 13:17 Uhr, schrieb Johannes Lumpe [email protected] :

Sie müssen entweder Ihre knex insert-Anweisung zurückgeben oder Handler hinzufügen (mit then oder catch / catch). Andernfalls erstellen Sie nur eine Builder-Instanz, führen die Abfrage jedoch nicht aus. Wenn Sie Methoden wie insert aufrufen, wählen Sie frometc. - Grundsätzlich jede Methode im Abfrage-Generator - ändert nur den internen Status, führt die Abfrage jedoch nicht aus. Dies geschieht nur, wenn Sie der Instanz einen oder mehrere Handler hinzufügen, indem Sie dann catch / catch, last / finally, tap oder exec verwenden, da dadurch das eigentliche Promise erstellt wird, das die Abfrage an den Datenbankclient sendet.

- -
Antworte direkt auf diese E-Mail oder sieh sie dir auf GitHub an.

Bitte!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

hyperh picture hyperh  ·  3Kommentare

lanceschi picture lanceschi  ·  3Kommentare

fsebbah picture fsebbah  ·  3Kommentare

mtom55 picture mtom55  ·  3Kommentare

sandrocsimas picture sandrocsimas  ·  3Kommentare