我想在创建错误报告之前确保这不是用户错误
使用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 的方式。我还没有深入研究源代码以了解发生了什么。