Лунный - получил схему, но как-то ее игнорировали - PullRequest
0 голосов
/ 03 мая 2018

Я получил лунную схему -

mongoose.Schema(
   {
      companyName: {
         type: String,
         required: true
      }
   },
   {
      companyEmail: {
         type: String,
         required: true
      }
   },
   {
      companySite: {
         type: String,
         required: true
      }
   })

Если я проверю это, например, Почтальон, если я отправляю пустой объект, он правильно выдает ошибку:

"Path 'companyName' is required.",

Однако, если я введу только companyName, почтовый запрос обрабатывается должным образом, даже если я не ввел companyEmail или companySite, и они требуются. Нужна помощь.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Функция mongoose.Schema принимает только один аргумент, описывающий модель данных. Тем не менее, в JS количество аргументов не проверяется во время вызова функции, поэтому ваш вызов с тремя аргументами не терпит неудачу, просто последние два просто игнорируются. Фактически схема, созданная вашим кодом, содержит только поле companyName.

Вы должны создать свою схему таким образом, чтобы она проверяла (и учитывала) все три поля.

mongoose.Schema({
    companyName: {
        type: String,
        required: true
    },
    companyEmail: {
        type: String,
        required: true
    },
    companySite: {
        type: String,
        required: true
    }
});
0 голосов
/ 03 мая 2018

Если вы используете данные формы html, поля все равно будут обрабатываться как пустая строка "". На сервере я бы проверил, если companyName.length> 0, и обработал ошибку перед вставкой данных в mongodb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...