sql >> データベース >  >> NoSQL >> MongoDB

CastError:モデルのパス_idの値route-nameのObjectIdへのキャストに失敗しました

    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. Mongodb-$group内の$group('key'による)

    2. MongoDBでMap/Reduceを使用するにはどうすればよいですか?

    3. RedisでSpringキャッシングを使用する場合、特定の時間に有効期限キーを設定します

    4. MongoidとActiveRecordの関係:未定義のメソッド `quoted_table_name '