Sailsjs Postgres NULL原始查询

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

使用sails-postgresql适配器我有一个查询(我已经为此问题的目的下沉了)想要处理一个NULL值,但我得到一个错误,不pipe我怎么写查询。 我已经尝试了不同的变体,但是你应该得到我想要在这里做的事情:

 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。 我还没有深入到源头去看看到底发生了什么。