MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

CastError:Cast to ObjectId nie powiodło się dla wartości nazwa-trasy w ścieżce _id dla modelu

Kolejność oprogramowania pośredniego w twoim sysaccess.js router jest zły.

Na przykład:

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

Rozwiązanie 1: spraw, aby te bardziej szczegółowe oprogramowanie pośrednie pojawiło się przed tymi bardziej ogólnymi.

Na przykład:

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

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

Rozwiązanie 2: użyj next przekazać żądanie do następnego oprogramowania pośredniego

Na przykład:

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. System głosowania z Backbone.js

  2. Błąd zduplikowanego klucza z unikalnym indeksem mongodb 2dsphere

  3. $expr arrayElementAt nie działa w agregacji dla osadzonego dokumentu

  4. Błąd [ERR_HTTP_HEADERS_SENT] Nie można ustawić nagłówków po ich wysłaniu do klienta

  5. Jak grupować zagnieżdżone posty za pomocą frameworka agregacji MongoDB?