pg-promise格式默认 - 不存在属性为null

问题描述 投票:0回答:1

我希望能够将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

我无法覆盖格式值函数,因为它被添加为不可配置的只读属性。

我只需要咬紧牙关并将变量放在任何地方,我希望它们是可选的......

javascript pg-promise
1个回答
0
投票

我只是想为格式化为查询的所有缺失值设置null的默认值...

如果要手动设置查询格式,请执行以下格式化功能:

function format(query, values) {
    return pgp.as.format(query, values, {'default': null});
}

对于helpers命名空间中自动生成的查询,您可以根据def API提供属性Column的值。

除此之外,查询方法自己使用format函数,所以你不能覆盖它,如果你正确使用库的API,你通常不需要它,也就是说你可以给我你认为自己需要它的一个具体例子,那么我可以告诉你避免它的更好的方法。

另一种方法 - 方法helpers.concat可以使用格式化选项,因为它实现了加入查询的特定情况。

© www.soinside.com 2019 - 2024. All rights reserved.