Maison  >  Questions et réponses  >  le corps du texte

L'application MERN ne peut pas supprimer des éléments de MongoDB

J'ai quelques requêtes pour supprimer des éléments de mongo :

deleteCustomer: build.mutation({
        query: (id) => ({
            url: `client/cutomers/${id}`,
            method: 'DELETE',
            body: 'id',
        }),
        providesTags: ['DeleteUser'],
    }),

À quoi ça ressemble dans le contrôleur :

export const deleteCustomer = async (req, res) => {
    try {
        const { id } = req.params;
        const formattedUsers = User.findByIdAndDelete(id);
        res.status(200).json(formattedUsers);
    } catch (e) {
        res.status(404).json({ message: e.message })
    }
}

Que diriez-vous de l'itinéraire :

import express from "express";
import { getEmployees, getCustomers, getTransactions, getGeography, deleteCustomer, getCustomer } from "../controllers/client.js";

const router = express.Router();

router.get("/employees", getEmployees);
router.get("/customers", getCustomers);
router.get("/transactions", getTransactions);
router.get("/geography", getGeography);

router.get("/customers/:id", getCustomer);
router.delete("/customers/:id", deleteCustomer);

export default router;

Dès que je demande la suppression de l'objet de byza, j'obtiens l'erreur suivante :

J'ai vérifié que les requêtes get fonctionnent correctement lors de l'utilisation de fetch. Voici comment j'ai fait la demande :

const [deleteCustomer] = useDeleteCustomerMutation()   

function handleDeleteUser(id) {
    // fetch('http://localhost:5001/client/customers/' + id, {
    //     method: 'GET',
        // })
        // .then(res => res.json())
        // .then(res => console.log(res))
        deleteCustomer(id)
    }

Je pense que je n'implémente pas correctement la fonctionnalité de suppression dans deleteUser au niveau du contrôleur. J'apprécierais vraiment vos suggestions sur la façon de résoudre ce problème :)

P粉427877676P粉427877676183 Il y a quelques jours340

répondre à tous(1)je répondrai

  • P粉924915787

    P粉9249157872024-04-02 14:11:31

    Affichez l'URL de l'itinéraire que vous obtenez. Sur votre capture d'écran, l'URL de votre demande de publication actuelle semble être http://localhost:5001/client/cutomers/...

    Je pense que c'est dans la fonction suivante :

    deleteCustomer: build.mutation({
            query: (id) => ({
                url: `client/cutomers/${id}`, // You put cutomers instead of customers
                method: 'DELETE',
                body: 'id',
            }),
            providesTags: ['DeleteUser'],
        }),
    

    Cela peut expliquer pourquoi votre serveur donne une réponse 404 introuvable.

    Pouvez-vous essayer d'apporter une correction et nous fournir une mise à jour ?

    répondre
    0
  • Annulerrépondre