cpru
cpru

Reputation: 78

Route.delete() requires a callback function but got a [object Undefined]

Keep getting this error but can't figure out what is wrong with my delete function. "Route.delete() requires a callback function but got a [object Undefined]"

const playerController = {
      index: (request, response) => {
        Player.find({})
          .then(player => response.json(player))
      .catch(error => console.log(error));
  },
  create: (request, response) => {

    Player.create(request.body)
      .then(player => response.json(player))
      .catch(error => console.log(error));

  },
  delete: (request, response) => {
    Player.remove(request.params.id)
    .then(player => response.json(player))
    .catch(error => console.log(error));
    //console.log('node function');
  }
};


    //- - - - = = = = Routes = = = = - - - - 

    app.get('/players', playerController.index);
    app.post('/players', playerController.create);
    app.delete('/players/:id', playerController.destroy);

    app.all("*", (request, response) => { response.sendFile(path.resolve("./manager/dist/index.html")) });

Upvotes: 0

Views: 1562

Answers (1)

jfriend00
jfriend00

Reputation: 707426

OK, to wrap this up, there were two issues here:

  1. You were using .playerController.destroy when you should have been using playerController.delete.

  2. To remove your item by id, you should be using Player.findByIdAndRemove().

Upvotes: 1

Related Questions