CastError: сбой приведения к числу для значения «xxx» по пути «yyy» для модели «qqq» Mongoose & Express - PullRequest
0 голосов
/ 01 марта 2019

Я создаю приложение, используя Express и Mongoose, и постоянно получаю эту ошибку: CastError: Преобразование в число завершилось неудачно для значения «Безопасность» в пути «age» для модели «Person»

Модель Mongoose

   const PersonSchema = new Schema({
     skills: [String],
     age: Number
   });

   const Person = mongoose.model("persons", PersonSchema);

Экспресс-маршрутизатор

app.get("/api/person/skill/:skill",(req, res, next)=>{

const humanSkill = req.params.skill;

    Person.find({ humanSkill: { $in: skill } })
      .then(humans => {
        res.send(humans);
      })
      .catch(next);
});

И это URL, который я называю (Безопасность - это пример умения)

http://localhost:3050/api/person/skill/Security

Я подозреваю, что ошибка вызвана skills: [String], но я не знаю, как это исправить, любая помощь?Спасибо заранее

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

ОБНОВЛЕНИЕ:

Мне удалось решить проблему, изменив путь URL.Теперь это:

app.get("/findbyskill/person/skill/:skills", ()=>{});

Это не идеальное решение, так как я действительно стремился докопаться до сути, но это сработало ... Надеюсь, это кому-нибудь поможет

0 голосов
/ 01 марта 2019
app.get("/api/person/skill/:skill",(req, res, next)=>{

const paramSkill = req.params.skill;

//DatabaseSkillKey is the database object key which is defined in Schema
Person.find({ DatabaseSkillKey: { $in: paramSkill } })
  .then(humans => {
    res.send(humans);
  })
  .catch(next);

});

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