получить одинаковый результат для всех - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь редактировать запись, но я получаю тот же результат, нажимая кнопку редактирования.Результат выбранного не приходит, а первый приходит каждый раз.Я хочу получить подробную информацию о нажатии кнопки редактирования.Получение результата enter image description here

Если я нажму на кнопку редактирования кого-либо, он получит то же значение, что и на картинке выше enter image description here router.js

 router.get('/editCategory/:id', async (req,res,next) => {
      const { id }   = req.params;
      const categories = await Category.findById({_id: id });
      res.render('category', {
          categories
      });
      res.json(data);
    });

    router.post('/editCategory/:id', async (req,res,next) => {
      const  { id } = req.params;
      console.log(req.body);
      const ctgy = await Category.findOne(id);
        Object.assign(record, req.body);
        await ctgy.save();
        res.redirect('/category');
    });

category.ejs

<tbody>
      <% for(var i = 0; i <categories. length; i++) { %>   
       <tr>
         <td><%= i+1 %></td>
         <td><%= categories[i].category %></td>
         <td><%= categories[i].status %></td>
         <td>    
          <!-- Button trigger modal -->
         <button type="button" class="btn bg-blue-w rounded edit" data-toggle="modal" data-target="#changecategoryModal">Edit</button>

    <!-- Modal -->
       <div class="modal fade" id="changecategoryModal" tabindex="-1" role="dialog" aria-labelledby="changecategoryModalLabel" aria-hidden="true">
       <div class="modal-dialog" role="document">
       <div class="modal-content">
       <div class="modal-header">
       <h5 class="modal-title" id="changecategoryModalLabel">Modal title</h5>                                                                   
         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>

         </button>

         </div>

         <div class="modal-body">

           <form action="/edit/<%= categories[i]._id %>" method="post" enctype="multipart/form-data"  id="categoryform">

           <div class="form-group">

            <label class="label-text">change Category</label>
                                                                                            <input type="text" class="form-control" placeholder="Category" name="category" value="<%= categories[i].category %>">

           </div>

            <div class="form-group">

           <label class="label-text">Change image</label>

           <input type="text" class="form-control" placeholder="Category" name="category" value="<%= categories[i].status %>">
                                                                                            <!-- <input type="file" name="myimage" value=""> -->

           </div>

           </form>

           </div>

           <div class="modal-footer">

           <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>

           <input type="submit"  value="submit" class="btn bg-red rounded" form="categoryform">

             </div>

          </div>

        </div>
       </div>
      </div>
       <a href="/deleteCategory/<%= categories[i]._id %>" class="btn bg-grey rounded">Delete</a>

 </td>
  </tr>
<%  } %>     
</tbody>

1 Ответ

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

Ошибка в строке ниже
const {id} = req.params ;
когда вы пытаетесь уничтожить объект req.params, значение id не устанавливается. Вот почему запрос каждый раз возвращает документ первой строки. Попробуйте записать значение id и проверьте.
на втором маршруте
const ctgy = await Category.findOne (id);
findOne принимает объект например: Category.findOne ({_ id: id})

...