2

バグ レポートを作成する前に、これがユーザー エラーではないことを確認したい

アダプターを使用し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を処理する方法です。何が起こっているのかを確認するために、ソースをあまり掘り下げていません。

4

0 に答える 0