Проверка схемы Mongoose: ошибка для пустой строки при проверке необязательного поля

Почему вы проходите -c? Это просто покажет количество матчей. Точно так же нет причин использовать -r. Я предлагаю вам прочитать man grep.

Чтобы grep для двух слов, существующих в одной строке, просто выполните:

grep "word1" FILE | grep "word2"

grep "word1" FILE будет печатать все строки с word1 в их из FILE, а затем grep "word2" напечатает строки, в которых есть слово2. Следовательно, если вы объедините их с помощью канала, он отобразит строки, содержащие как word1, так и word2.

Если вам просто нужно подсчитать, сколько строк имеет 2 слова в одной строке, выполните:

grep "word1" FILE | grep -c "word2"

Кроме того, чтобы ответить на вопрос, почему он застревает: в grep -c "word1" вы не указали файл. Поэтому grep ожидает ввода от stdin, поэтому он, кажется, виснет. Вы можете нажать Ctrl + D, чтобы отправить EOF (конец файла), чтобы он ушел.

0
задан Ashutosh Pandey 19 January 2019 в 07:52
поделиться

2 ответа

Я использую модуль validator.js для npm для проверки в моей схеме mongoose, и поэтому я проверил его документацию здесь и, проведя еще несколько исследований, наконец нашел ответ.

Схема может быть обновлена, чтобы не проверять mobile phone number, если значение пусто, например -

contactNum: {
    type: String,
    required: false,
    validate: {
      validator: (value) => {

        // Check if value is empty then return true.
        if (value === "") {
          return true;
        }

        // If value is empty will not validate for mobile phone.
        return validator.isMobilePhone(value);
      },
      message: "{VALUE} is not valid"
    }
  }
0
ответ дан Ashutosh Pandey 19 January 2019 в 07:52
поделиться

вам нужно обновить свой validator.isMobilePhone (), чтобы он принимал нулевые или пустые значения. И измените свою схему следующим образом

 contactNum: {
    type: String,
    required:false,
    validate: {
      validator: validator.isMobilePhone,
      message: "{Value} is not valid"
    }
  }

, установив для false значение «Вы можете», и вы сможете достичь желаемого.

измените свою функцию валидатора js следующим образом

Validator.isMobilePhone('telephone', function(value, requirement, attribute) { // requirement parameter defaults to null
  if(value.toString()==""){return true;}
  return value.match(/^\d{3}-\d{3}-\d{4}$/);
}, 'The :attribute phone number is not in the format XXX-XXX-XXXX.');
0
ответ дан THEWOLF 19 January 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: