我希望能够将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
我无法覆盖格式值函数,因为它被添加为不可配置的只读属性。
我只需要咬紧牙关并将变量放在任何地方,我希望它们是可选的......
我只是想为格式化为查询的所有缺失值设置
null
的默认值...
如果要手动设置查询格式,请执行以下格式化功能:
function format(query, values) {
return pgp.as.format(query, values, {'default': null});
}
对于helpers命名空间中自动生成的查询,您可以根据def
API提供属性Column的值。
除此之外,查询方法自己使用format
函数,所以你不能覆盖它,如果你正确使用库的API,你通常不需要它,也就是说你可以给我你认为自己需要它的一个具体例子,那么我可以告诉你避免它的更好的方法。
另一种方法 - 方法helpers.concat可以使用格式化选项,因为它实现了加入查询的特定情况。