NodeJS Join验证:需要两个字段或第三个字段



我希望允许API调用方通过Geohash或普通地理坐标输入地理数据。我的Joi验证模式当前如下:

const schema = Joi.object({
geoHash: Joi.string(),
lat: Joi.number().precision(8),
lon: Joi.number().precision(8),
});

那么,我如何需要geohash或lat和lon的组合呢?在验证之后,我如何发现使用了这两个选项中的哪一个?

模式验证需要geoHash或lat+lon组合:

const schema = Joi.object({
geoHash: Joi.string(),
lat: Joi.number().precision(8),
lon: Joi
.number()
.precision(8)
.when('lat', {
not: undefined,
then: Joi.required(),
})
}).or('geoHash', 'lat');

我不确定我们是否能找到使用了哪种验证。我翻遍了文件,找不到任何文件。

你可以有一个简单的Js代码:

const isGeoHashUsed = !!req.query.geoHash // assuming it's a GET request

如果为true,则使用geoHash。否则,使用lat+lon。

相关内容

  • 没有找到相关文章

最新更新