[express.js] typeorm을 이용한 CRUD

김민재·2024년 4월 7일

express.js

목록 보기
39/39

typeorm을 이용해 CRUD

  • AppDataSource: 데이터베이스
    getRepository: 데이터베이스의 엔티티(User) mongoose의 model과 같다.

create

import { AppDataSource } from "./data-source";
import { User } from "./entity/User";

app.post("/users", async (req, res) => {
  const user = await AppDataSource.getRepository(User).create(req.body)
  // database에서 User 엔티티에 req.body내용을 생성하겠다.
  const results = await AppDataSource.getRepository(User).save(user)
    // database에서 User 엔티티에 user 내용을 저장하겠다.

  return res.send(results)
});

read

app.get("/users", async (req, res) => {
  const user = await AppDataSource.getRepository(User).find();

  return res.send(user);
});

app.get("/users/:id", async (req, res) => {
  const user = await AppDataSource.getRepository(User).findOneBy({
    id: Number(req.params.id),
  });

  return res.send(user);
});

update

app.put("/users/:id", async (req, res) => {
  const user = await AppDataSource.getRepository(User).findOneBy({
    id: Number(req.params.id),
  });

  AppDataSource.getRepository(User).merge(user, req.body);
  // 새로운 내용으로 merge를 해준다.
  await AppDataSource.getRepository(User).save(user);
  // 새로운 내용을 저장해준다.

  return res.send(user);
});

delete

app.delete("/users/:id", async (req, res) => {
  const user = await AppDataSource.getRepository(User).findOneBy({
    id: Number(req.params.id),
  });

  await AppDataSource.getRepository(User).delete(user);
  // 삭제.

  return res.send("삭제 성공");
});
profile
개발 경험치 쌓는 곳

0개의 댓글