mongoose에서 objectId 체크하기

less than 1 minute read

objectId 형태 확인하기

mongoose의 id는 “5e68a34880ccfb5b78a85e3b”와 같은 형태이다.
해당 형태로 넘어오는 아이디 값을 체크해야할 경우가 생기는데, mongoose에서는 이를 위한 메소드를 지원한다.

{
    "data": {
        "_id": "5e68a34880ccfb5b78a85e3b",
        "title": "HelloWord",
        "_v":0
    }
}

불러온 데이터의 형태는 위와 같다.

유효성 체크하기

import mongoose from "mongoose";

const { ObjectId } = mongoose.Types;

ObjectId.isValid(id); // 값이 맞다면 true, 맞지 않다면 false를 리턴한다.

isValid 메소드를 통해서 값의 유효성을 체크할 수 있다.

express에서 사용할 수 있게 미들웨어로 만들어보기

import mongoose from "mongoose";

const { ObjectId } = mongoose.Types;

export const checkObjectId = (req, res, next) => {
  const { id } = req.params;
  if (!ObjectId.isValid(id)) {
    res.status(400).send("no!");
  }
  return next();
};

params를 통해서 전달되는 id를 받아서, 값이 유효하지 않다면 status를 400으로 하고, no!라는 글을 보여준다.
그리고 반대로 값이 유효하다면 next를 통해서 다음 미들웨어를 실행한다.

Leave a comment