IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Par défaut Erreur Mongoose CastError: Cast to ObjectId failed for value "55ec9651cf81ea131fc82a7de" at path "_id" for mod
    Bonjour,
    En essayant de supprimer une ressource en base (mongoDb), j'ai cette erreur :

    CastError: Cast to ObjectId failed for value "55ec9651cf81ea131fc82a7de" at path "_id" for model "Voiture"
    La methode est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    exports.deleteVoiture = catchAsync(async (req, res, next) => {
     
     
        const voiture = await Voiture.findByIdAndDelete(req.params.id);
        if (!voiture) {
          return next(new AppError('No voiture found with that ID', 404));
        }
     
        res.status(204).json({
          status: 'success',
          data: null
        });
     
    });
    URL sur Postman : localhost:3000/api/v1/voitures/55ec9651cf81ea131fc82a7de

    Help please

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Bonjour,

    Vu le message d'err on dirait que le cast de l'id, qui est un Objet plante. Essaies de le faire manuellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var mongoose = require('mongoose');
    var id = mongoose.Types.ObjectId('req.params.id');
    puis passe l'id ds la req


    Peut etre peux tu essayer aussi de changer de req method, sait on jamais....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .findByIdAndRemove(id);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Par défaut
    En suivant tes instructions, j'ai cette nouvelle erreur :

    Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
    at new ObjectID (D:\Workspace-Dev\natours\node_modules\bson\lib\bson\objectid.js:59:11)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Citation Envoyé par toutemes1 Voir le message
    En suivant tes instructions, j'ai cette nouvelle erreur :
    Ummm... ok... normalement mongoose accepte les _id de type string (contrairement a mongo), donc ta query d origine est correct. Mais il devrait aussi accepter les _id de type objet (puisque mongoose n est qu un wrapper de mongo). Cependant chez toi mongoose veut un _id de type string....

    As tu essaye ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .findByIdAndRemove.(req.params.id)
    Peux tu faire voir le Schema de Voiture ?

    Quel est ta version de mongoose ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Par défaut
    Bonjour,
    Voici le schéma de Voiture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    const mongoose = require('mongoose');
     
    const voitureSchema = new mongoose.Schema({
        name:{
          type: String,
          required: [true, 'A voiture must have a Name'],
          unique: true,
          trim: true
        },
        duration:{
         type: Number,
         required: [true, 'A voiture must have a duration']
        },
        maxGroupSize:{
          type: Number,
          required: [true, 'A voiture must have a Group size']
        },
        difficulty:{
           type: String,
           required: [true, 'A voiture must have a difficulty']
        },
        ratingsAverage: {
          type: Number,
          default: 4.5
        },
        ratingsQuantity:{
            type: Number,
            default: 0
        },
        price:{
          type: Number,
          required: [true, 'A voiture must have a price']
        },
        priceDiscount: Number,
        summary:{
            type: String,
            trim: true,
            required: [true, 'A voiture must have a summary']
        },
        description:{
            type: String,
            trim: true
        },
        imageCover:{
            type: String,
            required: [true, 'A voiture must have a cover image']
        },
        images: [String],
        createdAt:{
            type: Date,
            default: Date.now
        },
        startDates: [Date]
      });
     
      const Voiture = mongoose.model('Voiture', voitureSchema);
     
      module.exports = Voiture;

    La version mongoose est la suivante dans package.json :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    "dependencies": {
        "dotenv": "^7.0.0",
        "express": "^4.16.4",
        "mongodb": "^3.5.7",
        "mongoose": "5",
        "morgan": "^1.9.1"
      },

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Ok,

    Quel est ta version de node ?

    Ds ton premier rapport d err, l'id que mongoose rapport comme ne pouvant pas caster possede 25 char.

    Ds le second rapport d err (en passant l id en objet), mongo precise que l id doit posseder 24 char .... n y aurait il pas un char en plus qui aurait ete ajoute par erreur en amont.....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/11/2018, 03h25
  2. Réponses: 1
    Dernier message: 25/09/2017, 10h04
  3. Réponses: 5
    Dernier message: 12/10/2011, 22h40
  4. Réponses: 1
    Dernier message: 11/05/2006, 22h05
  5. Retour d'erreur avec l'utilisation de la commande For en VBS
    Par genialk2000 dans le forum VBScript
    Réponses: 3
    Dernier message: 30/03/2005, 18h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo