Knex: Knex.jsおよびPostgresでのthen()の使用に関する質問

作成日 2014年01月16日  ·  3コメント  ·  ソース: knex/knex

then()を使用して、作成テーブルと行の挿入をチェーンしようとしています。
テーブルは作成されますが、挿入は行われません(エラーはキャッチされません)。
誰かが私がどこが間違っているのか教えてもらえますか?

ありがとう
MN

var Promise = require( 'bluebird');
var Knex = require( 'knex');
Knex.knex = Knex.initialize({
クライアント: 'pg'、
接続:{

}、
デバッグ:true
});
var knex = require( 'knex')。knex;
knex.schema.createTable( 'department'、function(table){
table.increments( 'department_id')。primary()。notNullable();
table.string( 'department_name'、80).unique()。notNullable();
table.string( 'building_name'、40);
})。then(function(){
console.log( '部門テーブルが作成されました');
knex( 'department')。insert(
[{department_name: 'Nano Technology'、building_name: 'block-A'}、
{department_name: 'Mechanical Engineering'、building_name: 'block-C'}]、
'department_id'
);
})。then(function(){
console.log( '部門が挿入されました');
})。catch(function(e){
console.log(e);
});

question

最も参考になるコメント

return knex挿入ステートメントを追加するか、ハンドラーを追加する必要があります( thenまたはcatch / caught )。それ以外の場合は、 builderインスタンスを作成しているだけで、実際にはクエリを実行していません。 insertselectfromなどのメソッドを呼び出すと(基本的にクエリビルダーのすべてのメソッド)、内部状態のみが変更され、実際にはクエリが実行されません。 。 これは、 thencatch / caughtlastly / finallyを使用してインスタンスに1つ以上のハンドラーを追加した場合にのみ発生します。 tapまたはexec 。これにより、実際のPromise作成され、データベースクライアントにクエリが送信されます。

全てのコメント3件

return knex挿入ステートメントを追加するか、ハンドラーを追加する必要があります( thenまたはcatch / caught )。それ以外の場合は、 builderインスタンスを作成しているだけで、実際にはクエリを実行していません。 insertselectfromなどのメソッドを呼び出すと(基本的にクエリビルダーのすべてのメソッド)、内部状態のみが変更され、実際にはクエリが実行されません。 。 これは、 thencatch / caughtlastly / finallyを使用してインスタンスに1つ以上のハンドラーを追加した場合にのみ発生します。 tapまたはexec 。これにより、実際のPromise作成され、データベースクライアントにクエリが送信されます。

KnexとBookshelfは素晴らしいです。 どうもありがとう

  • MN

2014年1月16日には、13時17で、ヨハネスLumpeの[email protected]書きました:

knex insertステートメントを返すか、ハンドラーを追加する必要があります(thenまたはcatch / catchを使用)。そうでない場合は、ビルダーインスタンスを作成しているだけで、実際にはクエリを実行していません。 insert、select、frometcなどのメソッドを呼び出すとき。 -基本的にクエリビルダーのすべてのメソッド-内部状態を変更するだけで、実際にはクエリを実行しません。 これは、then、catch / catch、last / final、tap、またはexecを使用してインスタンスに1つ以上のハンドラーを追加した場合にのみ発生します。これにより、実際のP​​romiseが作成され、データベースクライアントにクエリが送信されます。


このメールに直接返信するか、GitHubで表示してください。

どういたしまして!

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

arconus picture arconus  ·  3コメント

zettam picture zettam  ·  3コメント

rarkins picture rarkins  ·  3コメント

fsebbah picture fsebbah  ·  3コメント

saurabhghewari picture saurabhghewari  ·  3コメント