問題タブ [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.
javascript - Bookshelf.js/Knex.js は UTC DATETIME 列で「役に立ちすぎる」
MySQL テーブルがあり、このテーブルには というDATETIME
名前の列がありますdatetime_utc
。ご想像のとおり、UTC の日付と時刻です。私の Bookshelf モデルでは、Moment.js を使用してこれを ISO 8601 文字列形式に変換する仮想ゲッターを定義しました。私のモデルは次のようになります。
問題は、Bookshelf (またはそれを駆動する基礎となる Knex) がDATETIME
列を見ると、値をnew Date(...)
コードに渡す前に a でラップすることです。日付の値は UTC ですが、Date コンストラクターは値がサーバーのローカルの非 UTC タイムゾーンにあると想定しているため、正しい日付が間違ったタイムゾーンにある Date オブジェクトになってしまいます。Moment がこの Date で作業を開始すると、すべての値が一定時間ずれます。
Date オブジェクトを探し、日付コンポーネントを Moment コンストラクターに直接分解することで、この問題を回避しました。しかし、それはひどく感じます:
Bookshelf からラップされていないYYYY-MM-DD HH:MM:SS
文字列値を取得する、またはタイムゾーンを無視/UTC に変更して Date から新しい Moment オブジェクトを作成する簡単な方法はありますか?
arrays - 文字列配列移行の構文
postgres 配列がknex #226でサポートされているようです。生のSQLを超えた移行の構文はありますか? スキーマ構築ドキュメントはそれについて言及していません。
おそらく、postgres 配列 docsを使用した生の SQL データ型は次のようになります。
しかし、次のようなものがありますか:
node.js - knex で同期クエリを実行する方法 [ノード]
ノード内のknex dbで結果を同期させる方法。 http://knexjs.org/#Promises-then
私はこのようなものが欲しい
また
複数の並列タスクを実行し、同期コードで結果を返す非同期ライブラリを作成する方法。以下のように、またはそのようなもの
sql - Bookshelf を使用した Postgres マテリアライズド パス検索
管理チェーンを格納するために具体化されたパスを使用しているとしましょう:
すべての直属の部下を返すユーザー ID を指定してクエリを作成するにはどうすればよいですか。別の言い方をすれば、management_chain
最後から 2 番目の位置で照会された ID を含むすべてのレコードを取得する良い方法は何でしょうか (最後の項目がユーザー自身の ID を表す場合)。
つまり、次の SQL をどのように表現すればよいでしょうか。
私の現在のJS:
どのエラーが発生しますか
ReferenceError: id is not defined
postgresql - PostgreSQL で Knex.js を使用してカスケード ドロップを行うにはどうすればよいですか?
別のテーブル (ページ) によって参照されているテーブル (アプリケーション) を削除しようとすると、このエラーが発生します。
エラーは
javascript - Postgres Heroku と Knex の接続が機能しない
Knex でクエリを実行して Heroku/Postgres データベースをセットアップするのに苦労しています。heroku/postgres db をセットアップしてテーブルを作成しましたが、Knex で接続するのが困難です。さらに悪いことに、Heroku/Postgres と Knex やその他の ORM との接続に関するドキュメントがほとんどないため、これを理解しようとするのは非常に苦労しました。
これらは私が試した接続パターンです。
そして... ssl true がトグルされ、すべて削除されて無駄になったことに注意してください。
このパターンも試しました。
まだ localdb のコピーを取得していないため、実行するすべてのテストは基本的に git commit です。基本的に、ルート (index.html) ページへの GET 要求で挿入クエリをテストしています。したがって、メイン ページへの get 要求では、水道料金テーブルに何かを挿入する必要があります。挿入から選択に切り替えると、オブジェクトが返されますが、オブジェクト内のデータは実際には表示されません。
使用しようとしているインサートは次のとおりです。
接続を試みてもエラーが発生しないため、実際にはエラーの原因は不明です。これはおそらくばかげたことですが、これをトラブルシューティングする場所と方法がわかりません。どんな助けでも大歓迎です!
ありがとう、B
javascript - bookshelf.js のタイムスタンプが機能しない
現在、bookshelf.js を試していて、次の knex 移行を使用してサンプル テーブルを作成しました。
次に、bookshelf.js モデルを定義しました。
そしてそれを保存しようとしました:
すべてが機能しているようで、データベースを見ると、新しいユーザーは実際に保存されていますが、タイムスタンプ列はNULL
. また、呼び出すu.timestamp()
前に呼び出しu.save()
ても効果がないようです。
ここで何が間違っていますか?
javascript - 表現する knex.js パイプ
と、以下のようなコードに問題がknex.js
あります:express
ドキュメントが書いたようknex.js
に:knex.jsクエリ用のストリームインターフェースがあります。
express(node http api)
しかし、結果を応答にパイプできません。
上記のコードは機能しません。
「TypeError」があります:
TypeError: 最初の引数は文字列またはバッファでなければなりません
何が悪かったのか?
mysql - bookshelfjs ノード関係
と の両方のモデルがUser
ありUserRole
ます。現在、2 つの役割があり、これら 2 つの役割にまたがる多くのユーザーがいます。userのフェッチでロールデータにアクセスする方法が見つかりません。
私が見ているエラーは次のとおりError: ER_BAD_FIELD_ERROR: Unknown column 'user_roles.user_id' in 'where clause'
です。
.
knex の移行は次のようになります。
何か案は?