MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

CastError:Không thể truyền tới ObjectId cho giá trị route-name tại path _id cho mô hình

Thứ tự của phần mềm trung gian trong sysaccess.js của bạn bộ định tuyến sai.

Ví dụ:

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

Giải pháp 1: làm cho những phần mềm trung gian cụ thể hơn ra đời trước những phần mềm trung gian chung chung hơn.

Ví dụ:

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

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

Giải pháp 2: sử dụng next để chuyển yêu cầu đến phần mềm trung gian tiếp theo

Ví dụ:

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. MongoDB:cách đặt trường mới bằng giá trị của trường khác cho mọi tài liệu trong bộ sưu tập

  2. NodeJS Knox Formosystem dẫn đến 400, Tệp không được tải lên Nhóm S3

  3. không thể chuyển đổi từ 'MongoDB.Driver.IMongoCollection <>' thành 'System.Collections.Generic.IEnumerable <>'

  4. Hướng dẫn kiến ​​thức cơ bản về MongoDB

  5. Mongo lập chỉ mục trên mảng đối tượng so với đối tượng