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);
});
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
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!
Hilfreichster Kommentar
Sie müssen entweder
return
Ihreknex
Anweisung einfügen oder Handler hinzufügen (indem Siethen
odercatch
/caught
). Andernfalls erstellen Sie nur einebuilder
-Instanz, führen die Abfrage jedoch nicht aus. Wenn Sie Methoden wieinsert
,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 Siethen
,catch
/caught
,lastly
/finally
,tap
oderexec
, da dadurch die tatsächlichenPromise
, die die Abfrage an den Datenbankclient senden.