我希望能够将formatting.formatValue函数转换为undefined为null。
但似乎没有办法可以从pg-promise的initOptions设置默认函数,因为pgFormatting是一个布尔值,格式值需要它作为参数。但是该库似乎没有通过它进行正常查询。
vitaly-t写道
但是我不确定它会添加多少价值,因为您无法访问查询方法中的格式化选项。
这是事实。但我只想为格式化为查询的所有缺失值设置默认值null。部分不是我不使用它?
使用coalesce在某些查询中包含“可选”值,默认情况下不设置变量。
示例:
UPDATE sometable SET value = COALESCE(${value}, value)
如何停止获取“属性不存在错误?
”我认为我需要一种方法将值传递给此选项,以便对格式进行所有调用。
if ('default' in options) {
const d = options.default, value = typeof d === 'function' ? d.call(obj, v.name, obj) : d;
return formatValue(value, v.fm, obj);
}
导致创建options.default的相关问题。 https://github.com/vitaly-t/pg-promise/issues/173
我无法覆盖格式值函数,因为它被添加为不可配置的只读属性。
我是否只需要咬住子弹并将变量放在任何地方,我希望它们是可选的......
答案 0 :(得分:0)
我只想为格式化为查询的所有缺失值设置默认值
null
...
如果您想手动设置查询格式,请使用以下格式化功能:
function format(query, values) {
return pgp.as.format(query, values, {'default': null});
}
对于helpers命名空间中自动生成的查询,您可以根据Column API提供属性def
的值。
除此之外,查询方法自己使用format
函数,所以你不能覆盖它,如果你正确使用库的API,你也不应该,通常不需要它,即如果你能给我一个你认为你需要它的具体例子,那么我可以告诉你更好的方法,避免它。
另一种方法 - 方法helpers.concat可以使用格式化选项,因为它实现了加入查询的特定情况。