sql >> Database >  >> NoSQL >> MongoDB

CastError:Cast naar ObjectId mislukt voor waarde routenaam op pad _id voor model

De volgorde van middlewares in uw sysaccess.js router is verkeerd.

Bijvoorbeeld:

// "GET /sysaccess/test" will be processed by this middleware
router.get('/:id', (req, res) => {
  let id = req.params.id; // id = "test"
  Foo.findById(id).exec().then(() => {}); // This line will throw an error because "test" is not a valid "ObjectId"
});

router.get('/test', (req, res) => {
  // ...
});

Oplossing 1: laat die meer specifieke middleware voor die meer algemene komen.

Bijvoorbeeld:

router.get('/test', (req, res) => {
  // ...
});

router.get('/:id', (req, res) => {
  // ...
});

Oplossing 2: gebruik next om het verzoek door te geven aan de volgende middleware

Bijvoorbeeld:

router.get('/:id', (req, res, next) => {
  let id = req.params.id;

  if (id === 'test') { // This is "GET /sysaccess/test"
    return next(); // Pass this request to the next matched middleware
  }

  // ...
});

router.get('/test', (req, res) => {
  // ...
});



  1. Hoe de junit-tests de ingebedde mongoDB te laten gebruiken in een springboot-toepassing?

  2. MONGODB [DEBUG] cursor.refresh() voor cursor 7078636577051629992

  3. Een privé-backingveld in kaart brengen met MongoDB C#

  4. mongoose .js-model zonder te exporteren, waarvoor in de helmknop nog steeds gewerkt wordt volgens schema