MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

CastError:Прехвърлянето към ObjectId е неуспешно за стойност име на маршрут в път _id за модел

Редът на междинния софтуер във вашия sysaccess.js рутерът е грешен.

Например:

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

Решение 1: направете тези по-специфични междинни софтуери да предхождат тези по-общи.

Например:

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

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

Решение 2: използвайте next за да прехвърлите заявката към следващия междинен софтуер

Например:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не мога да накарам mongoose-unique-validator да работи

  2. Самостоятелно хостван MongoDB

  3. Eclipselink с MongoDB java.lang.ClassCastException

  4. 4 начина за актуализиране на документ в MongoDB

  5. Обединяване на връзки в Spring Boot и mongo db