我想在创建错误报告之前确保这不是用户错误
使用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的方式。我还没有深入了解消息来源,看看到底发生了什么。