Web/Node.js
Node.js와 AWS RDS 연동 with Express, Prisma
choice91
2022. 2. 9. 21:34
728x90
반응형
AWS RDS 인스턴스 생성도 해봤으니까 Node.js와 연결을 해보자
프레임워크는 Express, ORM은 Prisma를 사용했고 모든 코드는 TypeScript로 작성했다.
Prisma를 사용하기 위해서는 먼저 @prisma/client를 설치해야한다.
아래 명령어로 설치하면 된다.
npm install @prisma/client
그리고 Prisma 프로젝트를 생성한다.
npx prisma init
prisma라는 폴더 안에 schema.prisma라는 파일이 자동으로 생성된다.
이 파일은 스키마를 정의하기 위한 초기파일이다.
// prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql" url = env("DATABASE_URL")
}
그리고 .env도 같이 생성되는데 이 파일은 프로젝트의 환경변수를 정의하는 파일이다.
나는 간단하게 User 스키마 하나만 만들어봤다
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model User {
@@map(name: "user")
id Int @id @default(autoincrement())
username String @unique @db.VarChar(255)
password String @db.VarChar(100)
}
그리고 prisma migrate CLI 명령을 실행한다. 명령을 실행하면 데이터베이스 테이블이 생성된다.
npx prisma migrate dev --name init
아래 작성한 코드로 데이터를 입력했다.
// routes/userRouter.ts
import { Router } from "express";
import { createUser } from "../controllers/userController";
const router = Router();
router.post("/", createUser);
export default router;
// controller/userController.ts
import { RequestHandler } from "express";
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
export const createUser: RequestHandler = async (req, res, next) => {
const { username, password } = req.body;
try {
const newUser = await prisma.user.create({
data: {
username: username,
password: password,
},
});
return res.status(201).json({ message: "Created user!", user: newUser });
} catch (error) {
next(error);
}
};
데이터를 입력했을 때 Workbench와 EC2에서 제대로 들어갔는지 확인해보았다.
데이터가 제대로 들어갔음을 확인할 수 있다 👍
728x90
반응형