sql >> Database teknologi >  >> NoSQL >> MongoDB

CastError:Cast to ObjectId mislykkedes for værdien rutenavn ved sti _id for model

Rækkefølgen af ​​middleware i din sysaccess.js routeren er forkert.

For eksempel:

// "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) => {
  // ...
});

Løsning 1: få de mere specifikke middlewares til at komme før de mere generelle.

For eksempel:

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

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

Løsning 2: brug next for at videregive anmodningen til den næste middleware

For eksempel:

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. MongoDB $dayOfWeek

  2. Forespørgsel til MongoDB fra browser ved hjælp af en kolbe-backend

  3. Hvorfor får jeg et uigenkendt argument til dateFromString:'format' på trods af at jeg har db-version>3.6, som understøtter aggregeringen

  4. Ønsker at bruge Redis som en begivenhedsstatistikbutik