Удаление объекта из MongoDB - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу удалить объектный файл из моей базы данных, когда вы нажимаете кнопку удаления, но API не работает.Что я делаю не так?

app.post('/api/dArtikel', function (req, res) {
  db.artikel.remove( { "_id": id }, function (err, docs) {
    if (err) {
      res.send('Niet gevonden');
    }
    else {
      res.json(docs);
    }
  });
});

ReferenceError: id is not defined

Я знаю, это говорит, что это не определено, но что мне теперь делать?

1 Ответ

0 голосов
/ 23 февраля 2019

Сначала используйте обработчик удаления.Во-вторых, id должен прийти откуда-то.Либо Angular передает его как параметр:

'/api/dArtikel/123'

или как значение строки запроса:

'/api/dArtikel?id=123'

В любом случае ваш обработчик должен использовать один из этих методов.Здесь используется параметр:

app.delete('/api/dArtikel/:id', function (req, res) {
  db.artikel.remove({ "_id": req.params.id }, function (err) {
    if (err) {
      res.status(400).json(err);
    }
    else {
      res.sendStatus(204);
    }
  });
});

Если есть ошибка, верните ее.В противном случае не возвращайте содержимое.Нет смысла возвращать все документы обратно, если есть ошибка, поскольку у вас, скорее всего, уже есть все эти данные на стороне клиента в Angular.

В вашем приложении Angular вы можете вызывать этот метод изкласс обслуживания:

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable()
export class ArtikelService {

  constructor (
    private httpClient: HttpClient,
  )

  deleteArtikel(id: string): void {
    this.httpClient
        .delete(`your-service-url/api/dArtikel/${ id }`)
        .toPromise()
        .then(() => { // do something })
        .catch(() => { // do something else });
  }

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