問題タブ [hugsql]
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.
testing - テスト エラー: :id? の使用方法
luminus
、h2
、 でhugsql
初めてこれをやろうとしていますclojure
。
このinsert
ステートメントは、データベースに接続された SQL クライアントに入力すると正常にh2
機能しますが、コードでは失敗します。WHERE id = :id
クエリの句に関係しているようですが、get-assessor
これを行う方法が見つかりません。
ファイル内./resources/sql/queries.sql
ファイル内:./test/db/core.clj
返される (切り捨てられた) メッセージは次のとおりです。
これを修正する方法は?
postgresql - YesQL/pgsql "パラメータ $1 のデータ型を特定できませんでした"
NULL
特定の検索とインデックスを返すためのクエリを再利用しようとしています(基本的に、ここで説明したアイデアを実装していますhttp://dev.solita.fi/2015/12/29/SQL-in-applications.html )。ただし、パラメーターERROR: could not determine data type of parameter $1
で関数本体を使用しようとすると、いつでも取得でき[]
ます。
クロジュアはこちら
ここにSQLがあります
clojure - Midje で HugSQL によって生成されたデータベース関数をモックできません
Conman ヘルパー ライブラリを使用して、HugSQL テンプレートから生成されたデータベース アクセス関数をモックするのに問題があります。これらの関数は、実行時に次のように定義されます。
(conman/bind-connection *db* file)
私の場合、このサービス関数の単体テストを行っています。
db/create-user!
関数は Conman によって生成されます。ただし、この Midje テストでその関数をモックアウトしようとすると、次のエラー メッセージが表示されます。
動的に作成されモック化された関数をサービスとテストの両方からまったく同じように参照していますが、midje はそれを同じ関数として認識しません。また、var( #'musician.user.db/create-user!
) を介して関数を参照し、サービスとテストの両方からのフル パスを使用しようとしましmusician.user.db/create-user!
たが、どちらも機能しませんでした。サービス コードは、REST API と REPL からテストすると機能しますが、このテストをセットアップできません。
問題は、実行前にわからないため、midje が関数をモックできないことのようです。これは関数を正しく参照するだけの問題ですか、それとも Midje でこれらの関数をモックアウトすることはできませんか?
clojure - Luminus (Clojure) で Parameter Mismatch エラーが表示されるのはなぜですか?
編集(固定)...
Luminus ゲストブック チュートリアルに従っている場合、またはその一部を調整している場合、 のようなエラーが発生しParameter Mismatch: :name parameter data not found.
、使用するパラメーターに関係なく、エラーが解消されない場合があります。存在しない関数を呼び出そうとしていて、Conman/HugSQL がそれをどう処理したらよいかわからないことに気付くかもしれません。
私の質問に対する答えは、以下のセクションにあります。
コードの関連セクションはmyapp.routes.home/create-user!
以下のコードは正しくありませんでした:
以下のように変更して修正しました。
そのため、間違った数の引数を db/create-user に渡していたことが判明しました! そして、Conman はクエリを呼び出す方法を知らなかったようです。
また、移行のいくつかの点をずさんな方法で修正しました - 発生した移行を編集することです。古い移行ファイルと query.sql ファイルを変更しても、Conman は気付かないように見えることに気付きました。query.sql が DB API を反映していないことがわかった場合 (そのため、id フィールドを自動インクリメントに設定しても ID パラメータに関するメッセージが引き続き表示される場合は、Conman に DB API を再生成させる必要があります。
これは、次のように REPL で実行できます。
以下元記事
Luminus ゲストブック チュートリアルに多かれ少なかれ基づいてまとめている本当に単純なアプリで、 http://localhost:3000/userscreate-user!
でフォームをテストしようとしています。フォームを送信するたびに、 It's not specific to のバリエーションが表示されます。私が送信するパラメータが何であれ、取得するか、同様のものを取得します。Parameter Mismatch: :username parameter data not found.
:username
:first_name parameter data not found.
私は実行しましたprintln
がmyapp.routes.home/create-user!
、その時点まですべてのパラメーターがそこにあるように見えることを知っています。それをさらに追跡する方法がわかりません。ここからのデバッグに関するアドバイスをいただければ幸いです。また、誰かが私が間違っていることを見つけた場合、それは非常に役に立ちます。
スタックトレース: