deleteMany с Mon goose используя массив - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь пакетно удалить, используя deleteMany через Mon goose. В настоящее время у меня есть несколько строк с флажками и кнопка отправки, которая помещает массив идентификаторов в мою конечную точку deleteMany следующим образом:

router.get('/list/batchDelete', secured()).delete(function(req, res) {
  Booking.deleteMany(
      {
        _id: {$in: [req.params.ids]},
      },
      function(err, rowsToDelete) {
        if (!err) {
          res.send(rowsToDelete);
          res.redirect('/list');
        } else {
          res.send(err);
          console.log('Error in batch delete :' + err);
        }
      },
  );
});

Я вижу полезную нагрузку req.params.ids.

POSThttp://localhost:8000/list/batchDelete
[HTTP/1.1 404 Not Found 34ms]
Request payload 
ids%5B%5D=5e1da4db2f11682b506fc6c8&ids%5B%5D=5e1da522becbb13f24748012&ids%5B%5D=5e1da57a5c7f911db82e5731

Но я продолжаю получать Cannot POST /list/batchDelete

Пожалуйста, чего мне не хватает?

Я ссылался на:

Пн goose Удалить многие по Id

Пн goose Документы: Query.prototype.deleteMany ()

ОБНОВЛЕНИЕ: я добавил пост-маршрут, подобный этому, который теперь выдает 200OK, но в браузере JSON просмотр и все еще без изменений в наборе данных.

router.post('/list/batchDelete', function(req, res) {
  const ids = req.body.ids;
  res.send(ids);
  res.redirect('/list');
});

1 Ответ

2 голосов
/ 14 января 2020

Используйте свой маршрут как этот

router.post('/list/batchDelete', async (req, res) {
  const {ids} = req.body;
    await Booking.deleteMany(
      {
        _id: {$in: ids},
      })
    return res.send('record deleted');
});

Использовать почтальон для вызова API

Вызов должен быть POST и в / list / batchDelete маршруте. Тело должно содержать массив идентификаторов, например, {"ids": [ 'id1', 'id2']}

Это решит вашу проблему удаления записей.

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