const http = require('http')
const express = require('express')
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
const app = express()
app.use(express.json()) // for parsing application/json
app.post('/users/signup', async (req, res) => { // 1
try { // 2
const { email, name } = dreq.boy // 3
console.log('email: ', email, 'name: ', name)
const createdUser = await prisma.$queryRaw`
INSERT INTO users(email, password) VALUES (${email}, ${password});
` // 4
return res.status(201).json({ message: "CREATED" }) // 5
} catch (err) { // 2
console.log(err)
return res.status(500).json({ message: err.message }) // 6
}
})
const server = http.createServer(app) // express app 으로 서버를 만듭니다.
const start = async () => { // 서버를 시작하는 함수입니다.
try {
server.listen(8000, () => console.log(`Server is listening on 8000`))
} catch (err) {
console.error(err)
await prisma.$disconnect() // 에러가 발생했을 시에 database 연결을 종료합니다.
}
}
start()
주석에 넘버링 되어있는 순서대로 코드를 설명하겠습니다.
드디어 데이터베이스 생성 → 마이그레이션 → Prisma client 생성 까지의 과정을 거친 후 마주하는 데이터 베이스에 접근하는 코드입니다.
위의 과정에서 어떠한 에러도 발생하지 않으면 response 객체를 사용해서 다시 클라이언트에게 응답을 돌려줍니다.
try 문 안에 있는 로직에서 에러가 발생했을 경우 500(internal server error) 상태코드와 함께 에러메시지를 response 로 보냅니다. (실제 서비스를 개발할 경우 이 메세지는 다양하게 바뀔 수 있습니다.)