Sailsjs Postgres NULL原始查询

时间:2015-04-18 00:00:41

标签: node.js postgresql sails.js waterline sails-postgresql

我想在创建错误报告之前确保这不是用户错误

使用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的方式。我还没有深入了解消息来源,看看到底发生了什么。

0 个答案:

没有答案