📲 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);
});
⭐️ 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문을 사용하지 않으면 테이블의 모든 데이터가 지워질 수 있으니 주의해 주세요!