TIL | Prisma & Express (User Update & Delete)

Wook·2021년 12월 23일
0

TIL | Backend

목록 보기
14/19

📲 ORM을 활용한 U.D


Update

  • 유저 정보 수정
app.put('/users', async (req, res) => {
	const { id } = req.query;
	const { email, password } = req.body;
	
  const updateUser = await prisma.user.update({
	  where: {
			id,
		},
		data: {
			email: email,
			password: password,
		}
  });

  res.json(updateUser);
});
  • 업데이트는 PUT 메서드를 사용합니다.
  • where에는 조건을 넣습니다. 위 코드에서는 id가 request에서 보내주는 id와 동일했을 때입니다.
  • data에는 새로 업데이트할 column 명을 객체 형태로 넣고 새로운 값을 수정합니다.
  • 이외에도 updateMany, upsert 등의 메서드가 있습니다. (Ex. Prisma Client API (Reference) )

Delete

  • 유저 정보 삭제
app.delete('/users', async (req, res) => {
	const { id } = req.query;
	
  const deletedUserCount = await prisma.user.deleteMany({
	  where: { id }
  });

  res.json(deletedUserCount);
});
  • deleteMany 메서드는 이름에서 유추할 수 있듯 여러 데이터를 삭제하는 메서드입니다. 이 메서드의 결과는 조건에 맞게 삭제된 데이터의 개수를 반환합니다.
    Prisma Client API (Reference)

⭐️ Raw Query

$queryRaw 메서드를 이용하여 위의 예시를 SQL문으로만 구현한 코드입니다. (생 쿼리)

Update

  • 유저 정보 수정
app.put('/users', async (req, res) => {
	const { id } = req.query;
	const { email, password } = req.body;
	
  const updateUser = await prisma.$queryRaw`
    UPDATE users
    SET email=${email}, password=${password}
    WHERE id=${id};
`;

  res.json(updateUser);
});
  • UPDATE, SET, WHERE 문을 사용합니다.
  • UPDATE 뒤에는 업데이트 할 테이블 이름을, SET 뒤에는 업데이트 할 칼럼과 값을 입력합니다.
  • WHERE문을 입력하지 않으면 모든 데이터가 업데이트 될 수 있습니다! (주의)

Delete

  • 유저 정보 삭제
app.delete('/users', async (req, res) => {
	const { id } = req.query;

  const deletedUserCount = await prisma.$queryRaw`
		DELETE FROM users
		WHERE id=${id}
	`

  res.json(deletedUserCount);
});
  • DELETE FROM, WHERE 문을 사용합니다.
  • Update와 마찬가지로 WHERE문을 사용하지 않으면 테이블의 모든 데이터가 지워질 수 있으니 주의해 주세요!
profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글