Как назначить массив String для определения модели мангусты в почтовом маршруте - PullRequest
1 голос
/ 14 июня 2019

Я работаю над проектом на Node.JS, и там я создал пользовательскую схему, у которой есть свойство, называемое Interest, которое содержит массив String, в то время как при назначении ключей со значением запроса ключ интересов не принимает значение запросить собственность.

POST маршрут:

app.post('/users', (req,res) => {
  var user = new Users({
    name : req.body.name,
    email : req.body.email,
    phone : req.body.phone,
    designation : req.body.designation,
    address : req.body.address,
    intrests : req.body.intersts //Here I have added an array of String
  });

  user.save().then((userData) => {
    res.status(200).send(userData);
  }).catch((e) => {
    res.status(400).send(e);
  })
});

USER Schema

var UserSchema = new Schema({
  name : {
    type : String,
    required : true,
    trim : true,
    minlength : 5,
    unique : true
  },
  email : {
    type : String,
    required : true,
    trim : true,
    minlength : 5,
    validiate : {
      validator : validator.isEmail,
      message : 'Email is Valid'
    }
  },
  phone : {
    type : Number,
    minlength : 10,
    required : true
  },
  designation : {
    type : String,
    minlength : 4,
    required : true
  },
  address : {
    type: String,
    required : true
  },
  intrests : {
      type : Array,
      default : [],
      required : true
  }
});

Я ввел следующий ввод ...

{
    "name" : "Surya",
    "email" : "suryanarayan88@outlook.com",
    "phone" : "8895591782",
    "designation" : "Java Developer",
    "address" : "186/1783 Mahadev Nagar",
    "intrests" : ["web developement","Games"]
}

Я получил результаты как ...

{
    "_id": "5d031d27acc9840c7c3997a0",
    "name": "Surya",
    "email": "suryanarayan88@outlook.com",
    "phone": 8895591782,
    "designation": "Java Developer",
    "address": "186/1783 Mahadev Nagar",
    "intrests": [
        null
    ],
    "__v": 0
}

1 Ответ

0 голосов
/ 14 июня 2019

Ваша схема неверна для хранения массива или строки

так и должно быть,

... // rest of schema code
address : { type: String, required : true},
intrests : {type: Array,  required : true, default : [] }

Поскольку ваша предыдущая схема для interests ожидала массив объекта [{interest: []}]

и вы передавали ["web developement","Games"] массив строк.

Примечание: согласно вашему комментарию, Это.

interests : [{
      type : String,
      default : [],
      required : true
  }]

Должно быть это в вашей схеме.

intrests : {type: Array,  required : true, default : [] }
...