๐backend ์ผ์ง๐
[user์์ฑ ์ฝ๋] - ๊ฐ๋จํ๊ฒ post(signup)๊ณผ์ ๋ง ๊ธฐ๋กํด๋ณด๋ ค๊ณ ํ๋ค.
app.jsํ์ผ
(๊ธฐ๋กํ ๊ฒ์ด ์๋ฌ ํธ๋ค๋ง ๋ฟ...)
app.use("/api/users", usersRoutes)
- ์กด์ฌํ์ง ์๋ ๋ผ์ฐํธ์ ๋ํ ์๋ฌ ํธ๋ค๋ง
app.use((req, res, next) => {
return next(new ExpressError("ํ์ด์ง๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.", 404))
})
- Express ์ค๋ฅ์ฒ๋ฆฌ document๋ฅผ ์ฐธ๊ณ ํ ์๋ฌ ํธ๋ค๋ง ๋ฏธ๋ค์จ์ด
app.use((err, req, res, next) => {
console.log("error: ", err.stack)
res
.status(err.code || 500)
.json({ message: err.message || "An unknown error occurred!" })
})
users-route.jsํ์ผ
const express = require("express")
const router = express.Router()
validtaion check ๋ชจ๋
const { check } = require("express-validator")
router.post(
"/signup",
[
check("name").not().isEmpty()
check("email").normalizeEmail().isEmail(),
check("password").isLength({ min: 5 }),
],
users.signUpUser,
)
users-controller.jsํ์ผ
ํ์ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ง๋ค์ด์ง์ง ์์ ์ํ์ด๋ฏ๋ก ์ง์ ๋ฐฐ์ด์ pushํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์๋ค.
module.exports.signUpUser = (req, res, next) => {
const errors = ValidationResult(req)
if (!errors.isEmpty()) {
console.log(errors)
return next(new ExpressError("์ ํจํ์ง ์์ ๋ฐ์ดํฐ ์
๋๋ค.", 422))
}
const { name, email, password } = req.body
const createdUser = {
id: uuid(),
name,
email,
password,
}
USERS_DB.push(createdUser)
res.json({ user: createdUser })
}
validation ์ฒดํฌ๋ฅผ ํ ๊ฒฝ์ฐ
const errors = ValidationResult(req)
ํด๋น ์ฝ๋๋ฅผ ํตํด ์๋ฌ ๋ฐ์ ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์๊ณ ,
๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์์ธ๊ฐ ๋ ์ํฉ์ ์๊ฐํ์ฌ next()์ error๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
์ญ์ error handling์ด ์์ง๊น์ง ์ ์ผ ์ ๊ฒฝ์ธ๊ฒ ๋ง์ ๊ฒ ๊ฐ๋ค,,,,
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐backend ์ผ์ง๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@ysg81/backend-์ผ์ง์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค