バグ レポートを作成する前に、これがユーザー エラーではないことを確認したい
アダプターを使用しsails-postgresql
て、NULL 値を処理したいクエリがあります (この質問のためにダミーで説明しました) が、どのようにクエリを記述してもエラーが発生します。さまざまなバリエーションを試しましたが、ここでやりたいことの要点を理解する必要があります。
parent = req.param('parent') or null
Route.query 'SELECT * FROM route WHERE parent '+(if not parent then 'is' else '=')+' $1', [parent], (err, routes)->
console.log(err, routes)
if err
return res.json(400, [error: sails.__('Database.connect'), _error: err])
res.json(routes.rows)
私が常にデータを渡している上記のいくつかのバリエーションは、常にエラーになります。
簡単な修正は
parent = req.param('parent') or null
values = []
if(parent)
values.unshift(parent)
Route.query 'SELECT * FROM route WHERE parent '+(if not parent then 'is NULL' else '= $1'), values, (err, routes)->
これは一種の迷惑です。
それを行うより良い方法はありますか?この生のクエリがpostgresの準備済みステートメントを作成していると想定する必要があるため、おそらくpostgresが実際にnullを処理する方法です。何が起こっているのかを確認するために、ソースをあまり掘り下げていません。