問題タブ [knex.js]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - Knex NodeJS とデータベースへの挿入
私はnodejsを初めて使用し、APIサーバーをセットアップしようとしていました.これが私の最初の試みです. mongo db の代わりに mysql を使いたかったのです。
私の問題は、「knex('user').insert({email: req.body.email});」データベースに保存したくないようです。
問題は、knex をデータベースに追加できないことです!
データベースはこちら
javascript - Node.js と本棚; ID の配列を使用して多対多の関係の値を設定する
Node.js と Bookshelf を使用して API をセットアップしています。リクエストに含まれる JSON は次のようになります。
会話オブジェクトは次のようになります。
ユーザーは次のようになります。
user_id
データベースには、 andフィールドを持つ conversations_users テーブルに加えて、会話とユーザー テーブルがありconversation_id
ます。
そのため、ドキュメントを調べてきましたが、指定された ID を持つ既存のユーザーと関係を持つ会話オブジェクトを作成する方法を理解するのに苦労しています。
これが私がこれまでにコントローラーに持っていたものです
postgresql - PostgreSQL ラージ オブジェクトの Bookshelf/Knex をクエリする方法
さまざまなプロジェクトで PostgreSQL 9.4 で Bookshelf.js/Knex.js を使用しています。魅力のように機能します。Bookshelf.js/Knex.js を使用する喜び。
最近、PostgreSQL ラージ オブジェクトをスキーマとデータベースに追加し、このコンテキストでそれらを取得する最良の方法を探しています。
これまでのところ、 pg-large-objectモジュールを使用してラージ オブジェクトを正常に取得しています (読みやすくするためにエラー処理は削除されています)。
ご覧のとおり、Bookshelf.js/Knex.js の既存の接続を再利用しないため、これは DRY ではありません。
問題は、これを達成するための最良の方法は何ですか?
pg
Knex postgres 方言で使用される接続クライアントを取得して再利用しようとしていますか? しかし、どのように?せいぜい手に入れることができるようですknex.client.connectionSettings
「単純な関数を使用して大きなオブジェクトを操作する」というコメントで示唆されているように、Knex から大きなオブジェクトを処理するために PostgreSQL 関数を直接使用すること。? しかし、それを具体的にどうするか。そのためのKnex生クエリはありますか?
javascript - Promise チェーンが失敗するのはなぜですか?
knex を使用してデータベースをシードしようとしています。寄稿者の助けを借りて、いくつかの手順を実行する必要がある 1 つのテーブルのシードに成功しました。
- シード テーブルの外部キー値を入力できるように、いくつかの外部テーブルから ID 値を取得する必要があります。
- シード テーブルにn 個のレコードを生成します。
- テーブルにデータを入力します。
前述のように、これは1つのテーブルで機能しています。私はルーフィングタックよりも賢く、別のテーブルに対してほぼ同じことを行う必要があるため、最初のシードファイルで機能していたものをコピーし、2 番目のシードファイルにドロップし、いくつかの適切な変更を加えました (具体的には、2番目のテーブルでは、この時点で1つの外部キー値を入力するだけで済みます)...機能しません。
私は途方に暮れています。確かに、このコードに欠けているばかげた小さなことがいくつかありますが、それを見つけることができません。units
値を入力する必要があるテーブルをシードしようとしていproperties.id
ます。
私は何を間違っていますか?私はこのことに落ち込みましたが.catch()
、.error()
ログには何も書き込まれません。.spread(...)
どういうわけか、私は決してメソッドに立ち入らないようです。
アップデート
それが何であれ、これは.map
返される前のメソッドの内容です...
javascript - Knex の移行では何も作成されません
Knex.js を使い始めようとしていますが、移行がうまくいかないようです。コマンドを実行するとknex migrate:latest
、データベースにはknex_migrations
テーブルしかありません。
私は何か間違ったことをしていますか?
ネクスファイル
移行
node.js - Knex.js で結合されたテーブルから特定の列を選択するにはどうすればよいですか?
私は SQL データベースで約 20 年間働いてきましたが、クエリをマップする Knex の方法を理解するのに苦労しているようです。誰かが正しいコードを取得するのを手伝ってくれますか?
nodejs アプリケーションで使用したい次の SQL クエリがあります。
KnexJS (0.7.5) のドキュメントには、私のクエリでは次のような例が示されています。
ドキュメントで見つけられないことがいくつかあります。
1) 含めたい列を選択するにはどうすればよいですか? プロジェクト、クライアント、および所有者にはそれぞれ 20 ~ 50 の列があり、すべてに関心があるわけではありません。メインテーブルから列を選択することは明らかですが ( select()またはcolumn()を使用)、結合されたテーブルから列を選択する方法は?
2) 一部の列は同じ名前です。名前の競合を回避するにはどうすればよいですか (つまり、他のテーブルの列にプレフィックスを追加するなど)? Knex がカラム エイリアス (... AS ...) を生成する方法を調べましたが、それがより複雑なクエリの実行可能なオプションであるかどうかはわかりません。(上記のような比較的単純なクエリでも)
mysql - 本棚でnodejsのDBコントローラーに認証済みユーザーを渡そうとしています
ユーザーが最初に mysql データベースに保存された資格情報を使用してログインできるようにする Web アプリを作成しています。次に、/crm に移動すると、ユーザーがアクセスできるデータベースを指定するフィールド値を渡して、bookshelf/knex データベース接続をインスタンス化しようとしています。
crmDB.js
私はこれを行うことができますか?ルートには何を入れますか?
javascript - bookshelf.js がリレーションをロードしていません
私はbookshelfjsを初めて使用し、他のテーブルのIDを使用して他のテーブルからデータを取得したいと考えています。このサンプルデータを使用しています:
質問: bookshelf.js を介して特定のユーザーのログを照会するにはどうすればよいですか?
結果は次のようになります。
私のクエリ:
私のモデル
ログ エラー:
knex.js - createTable() はドロップ テーブルを生成します
knex v0.7.6、pg v4.3.0
knex dropTable() の後に createTable() を実行すると、2 つのドロップ テーブルが生成される理由を説明できる人はいますか? createTable() の呼び出しで 2 番目の SQL「ドロップ テーブル」が生成されます。
コード
Knex デバッグ出力