Ошибка приведения к ObjectId для значения \ ": 5e1360c5edb2922570aa2611 \" по пути \ "_ id \" для модели \ "colt \" "Ошибка - PullRequest
0 голосов
/ 07 января 2020

Я создаю программу для выполнения операций CRUD и получаю сообщение об ошибке:

Ошибка приведения к ObjectId для значения \ ": 5e1360c5edb2922570aa2611 \" по пути \ "_ id \" для модели \ "colt \" ",

Вот мой код:

// here is the route of edit path
app.get("/edit/:ids", (req, res) => {
  colt.findById(req.params.ids, (err, coltz) => {
    if (err) {
      res.redirect("/");
    } else {
      res.render("showedit", { colt: coltz });
    }
  });
});

// here is the update route
app.put("/edit/:ids", (req, res) => {
  colt.findByIdAndUpdate(req.params.ids, req.body.colts, err => {
    if (err) {
      res.send(err);
    } else {
      res.redirect("/show");
    }
  });
});

Вот это шоу редактирования файла js:

<h1>HELLO HERE YOU CAN UPDATE</h1>
<form action="/edit/:<%=colt._id%>?_method=PUT" method="POST">
    <input type="text" placeholder="name here" name="colts[name]" value="<%= colt.name  %>">

    <input type="text" placeholder="description here" name="colts[description]" value="<%= colt.description  %>">

    <input type="text" placeholder="img url here" name="colts[url]" value="<%= colt.url  %>">
    <input type="submit">
</form>

И это моя мон goose схема:

var coltSchema = new mongoose.Schema({
  name: String,
  description: String,
  url: String
});

let colt = mongoose.model("colt", coltSchema);

1 Ответ

0 голосов
/ 07 января 2020

Вам не нужно писать: в вашей ссылке при использовании URL-параметров

<form action="/edit/:<%=colt._id%>?_method=PUT" method="POST"> // remove : from this line

Из-за этого значение, которое ваш маршрут получает в идентификаторах, равно :5e1360c5edb2922570aa2611 вместо 5e1360c5edb2922570aa2611 только

Удалите: из URL формы действия, и вы хороши до go

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