๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ช๋ฐ๋ธŒ์ฝ”์Šค

[6์ฃผ์ฐจ] ๋ฐ๋ธŒ์ฝ”์Šค 6์ฃผ์ฐจ ๋ณต์Šต

by megan07 2024. 4. 12.

๊ด€์‹ฌ์‚ฌ๋ณ„๋กœ API๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ• ๊นŒ?

express์˜ Router ์‚ฌ์šฉํ•˜๊ธฐ

//app.js

const express = require("express");
const app = express();

app.listen(3000);

const userRouter = require("./routes/user");
const videoRouter = require("./routes/video");

app.use("/", userRouter);
app.use("/videos", videoRouter);

 

app.js์—์„œ๋Š” ์–ด๋–ค ๊ด€์‹ฌ์‚ฌ๋กœ ๋ผ์šฐํ„ฐ๋ฅผ ๋‚˜๋ˆŒ์ง€ ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค

๊ฐ ๋ผ์šฐํ„ฐ๋“ค์€ routes ํด๋” ํ•˜์œ„์— ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

 

// routes/user.js

const express = require('express');
const router = express.Router();
router.use(express.json());

const conn = require('../mariadb');
const { body } = require('express-validator');
const { validate } = require('../utils/validation');
const jwt = require('jsonwebtoken');
require('dotenv').config();

//๋กœ๊ทธ์ธ
router.post(
  '/login',
  (req, res) => {
  //...์ฝ”๋“œ
    });
  },
);

//ํšŒ์›๊ฐ€์ž…
router.post(
  '/join',
  (req, res) => {
   //...์ฝ”๋“œ
  },
);

//ํšŒ์›๊ฐœ๋ณ„ ์กฐํšŒ
router
  .route('/users')
  .get(
    (req, res) => {
	//...์ฝ”๋“œ
    },
  )
  .delete(
    (req, res) => {
      //...์ฝ”๋“œ
    },
  );

module.exports = router;

 

 

์ด๋Ÿฐ ์‹์œผ๋กœ app.js์—์„œ ๊ณตํ†ต๋œ path๋กœ ๋ฌถ์–ด์ฃผ๊ณ 

routes ํŒŒ์ผ์—์„œ router๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ routes ํŒŒ์ผ์—์„œ๋„ ๊ณตํ†ต์ ์ธ path๋ฅผ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฏธ๋“ค์›จ์–ด ์‚ฌ์šฉํ•˜๊ธฐ

express-validator

const { param, body, validationResult } = require('express-validator');
const { validate } = require('../utils/validation.js');

router.post(
  '/join',
  [
    body('email').notEmpty().isEmail().withMessage('์ด๋ฉ”์ผ ํ™•์ธ ํ•„์š”'), 
    body('password').notEmpty().isString().withMessage('๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ํ•„์š”'),
    body('name').notEmpty().isString().withMessage('์ด๋ฆ„ ํ™•์ธ ํ•„์š”'),
    body('contact').notEmpty().isString().withMessage('์—ฐ๋ฝ์ฒ˜ ํ™•์ธ ํ•„์š”'),
    validate,
  ],
  (req, res) => {
    const user = req.body;

   	...๋กœ์ง
  },
);

 

express-validator๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ,

DB์™€ ํ†ต์‹ ํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ถ€๋ถ„์ด ๋ถ„๋ฆฌ๋˜์–ด์„œ ๋กœ์ง์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ฒด์ด๋‹์œผ๋กœ ์–ด๋–ค ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋Š”์ง€ ํ•œ ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์„œ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

 

https://express-validator.github.io/docs/guides/getting-started