web-dev-qa-db-ja.com

Nodejs-文字列が指定されたリストにあるかどうかをJoiチェック

サーバー側の検証に Joiパッケージ を使用しています。
特定の文字列が特定のリストにあるかどうか、または特定のリストにないかどうかを確認したい(値のブラックリストまたはホワイトリストを定義する)
sth( "in"または "notIn"function。どうすればできますか?

var schema = Joi.object().keys({
    firstname: Joi.string().in(['a','b']),
    lastname : Joi.string().notIn(['c','d']),
});
16
Salar

どうですか:

var schema = Joi.object().keys({
    firstname: Joi.string().valid(['a','b']),
    lastname : Joi.string().invalid(['c','d']),
});

別名もあります:.allowと.only

および.disallowおよび.not

21
Robert Moskal

validおよびinvalid関数を探しています。
https://hapi.dev/family/joi/?v=16.1.5#anyvalidvalues---aliases-equal

Joi v16以降、validおよびinvalidは配列を受け入れなくなり、可変数の引数を取ります。

あなたのコードは

_var schema = Joi.object().keys({
    firstname: Joi.string().valid(...['a','b']),
    lastname: Joi.string().invalid(...['c','d']),
});
_

配列から値を取得しない場合は、.valid('a', 'b')として渡すこともできます(-:

12
thomasin