ABOUT ME

Today
Yesterday
Total
  • My Agora states server
    codeStates front-end/node(server) 2023. 2. 9. 16:22
    ๋ฐ˜์‘ํ˜•

     

     

     

     

    ๐Ÿ“Œ My Agora states server

     

     

    ๐Ÿ“– ํ•™์Šต ๋ชฉํ‘œ

     

     

     

    ์ „์˜ ํ•™์Šตํ•œ statesAirline Server๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์…จ๋‹ค๋ฉด ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

    airline ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๊ตฌํ˜„ํ•ด ๋ด…์‹œ๋‹น

     

     

    StatesAirline Server

    ๐Ÿ“Œ StatesAirline Server ๐Ÿ“– ํ•™์Šต ๋ชฉํ‘œ ์ด๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์ „์˜, ์•„๋ž˜ ๊ธฐ๋ณธ ๋‚ด์šฉ์„ ๋จผ์ € ์ดํ•ดํ•˜์ž Express ์‚ฌ์šฉ Refactor Express ๐Ÿ“Œ Refactor Express ๐Ÿ“Express Express ์„ค์น˜ npm install express Hello world! ์˜ˆ์ œ ๋งŒ๋“ค๊ธฐ Express

    hwantech.tistory.com

     

     

    ๐Ÿ“ฃ

    ์„œ๋ฒ„๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ ์‹œํ‚ค๋ฉด ๋ฏธ๋“ค์›จ์–ด ์…‹ํŒ… ๋ถ€๋ถ„์ด ๋™์ž‘

    ๊ทธํ›„ '์ฃผ์†Œ/'๋ฅผ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ๋ผ์šฐํŠธ ๋ถ€๋ถ„์ด ์‹คํ–‰๋˜๊ณ  ๋‹ค์‹œ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆผ

    ์ฃผ์†Œ/๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋ผ์šฐํŠธ ์‹คํ–‰ x ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋™์ž‘

     

     

    1. ๋ฏธ๋“ค์›จ์–ด ์…‹ํŒ… ๋ถ€๋ถ„์ด ๋™์ž‘

     

    airline / app.js

     

    const express = require('express');
    const cors = require('cors');
    const app = express();
    
    // ๋ชจ๋“  ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์„์ˆ˜ ์žˆ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.
    
    // HTTP server์˜ ํ‘œ์ค€ ํฌํŠธ๋Š” ๋ณดํ†ต 80 ๋ฒˆ ์ด์ง€๋งŒ, ๋ณดํ†ต ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    // ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ํฌํŠธ๋กœ 3000, 8080, 1337 ๋“ฑ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
    
    // PORT๋Š” ์•„ํŒŒํŠธ์˜ ํ˜ธ์ˆ˜์™€๋„ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.
    // (* ๋•Œ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์—ด๊ณ  ์‹ถ๋‹ค๋ฉด, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉ ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.)
    const port = 3001;
    
    const flightRouter = require('./router/flightRouter');
    const bookRouter = require('./router/bookRouter');
    const airportRouter = require('./router/airportRouter');
    
    app.use(cors());
    app.use(express.json());
    
    app.use('/flight', flightRouter);
    app.use('/book', bookRouter);
    app.use('/airport', airportRouter);
    
    app.get('/', (req, res) => {
      res.status(200).send('Welcome, States Airline!');
    });
    
    app.use((req, res, next) => {
      res.status(404).send('Not Found!');
    });
    
    app.use((err, req, res, next) => {
      console.error(err.stack);
      res.status(500).send({
        message: 'Internal Server Error',
        stacktrace: err.toString()
      });
    });
    
    app.listen(port, () => {
      console.log(`[RUN] StatesAirline Server... | http://localhost:${port}`);
    });
    
    module.exports = app;

     

    app.js

     

    const express = require('express');
    const app = express();
    
    const cors = require('cors');
    const morgan = require('morgan');
    
    // morgan ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์„ธํŒ…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    // HTTP ์š”์ฒญ logger๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋“ค์›จ์–ด ์ž…๋‹ˆ๋‹ค.
    app.use(morgan('tiny'));
    
    // TODO: cors๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    app.use(cors());
    // TODO: Express ๋‚ด์žฅ ๋ฏธ๋“ค์›จ์–ด์ธ express.json()์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    app.use(express.json());
    
    const port = 4000;
    const discussionsRouter = require('./router/discussions');
    
    // TODO: app.use()๋ฅผ ํ™œ์šฉํ•˜์—ฌ /discussions ๊ฒฝ๋กœ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. 
    
    app.use('/discussions',discussionsRouter);
    
    app.get('/', (req, res) => {
      // ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ์„ ์œ„ํ•ด ์ƒํƒœ ์ฝ”๋“œ 200๊ณผ ํ•จ๊ป˜ ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
      res.status(200).send('fe-sprint-my-agora-states-server');
    });
    
    const server = app.listen(port, () => {
      console.log(`[RUN] My Agora States Server... | http://localhost:${port}`);
    });
    
    module.exports.app = app;
    module.exports.server = server;

     

     

    2. '์ฃผ์†Œ/'๋ฅผ ๋“ค์–ด๊ฐ€๋ฉด ๋ผ์šฐํŠธ ์‹คํ–‰

     

    aipalneRouter.js

     

    const { findAll } = require('../controller/airportController');
    const express = require('express');
    const router = express.Router();
    
    router.get('/', findAll);
    
    module.exports = router;

     

    discussions.js

     

    // TODO: discussions ๋ผ์šฐํ„ฐ๋ฅผ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.
    const { discussionsController } = require('../controller');
    const { findAll, findById } = discussionsController;
    const express = require('express');
    const router = express.Router();
    
    // TODO: ๋ชจ๋“  discussions ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
    router.get('/', findAll);
    
    // TODO: :id์— ๋งž๋Š” discussion์„ ์กฐํšŒํ•˜๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
    router.get('/:id', findById);
    
    module.exports = router;

     

     

     

     

    3. controller ๊ธฐ๋Šฅ ๊ตฌํ˜„

     

    controller/index.js

     

    const { agoraStatesDiscussions } = require("../repository/discussions");
    const discussionsData = agoraStatesDiscussions;
    
    const discussionsController = {
      findAll: (req, res) => {
        // TODO: ๋ชจ๋“  discussions ๋ชฉ๋ก์„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
        return res.status(200).json(discussionsData)
      },
    
      findById: (req, res) => {
        // TODO: ์š”์ฒญ์œผ๋กœ ๋“ค์–ด์˜จ id์™€ ์ผ์น˜ํ•˜๋Š” discussion์„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
        const { id } = req.params;
        let filterData = discussionsData.filter((discussion) => {
          return discussion.id === Number(id);
        });
        if (filterData.length !== 0) {
          return res.status(200).json(filterData[0]);
        } else {
          return res.status(404).json(filterData);
        }
      },
    
    };
    
    module.exports = {
      discussionsController,
    };

    

     

     

    pakage.json๋ณด๊ณ  ์„œ๋ฒ„ ์‹คํ–‰

     

     

     

     

    postman์œผ๋กœ GET์š”์ฒญ ํ•ด๋ณด๊ธฐ

     

     

    ๋Š๋‚€์ 

     

    ๋ฐ˜๋Œ€๋กœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๊ณ  ๋ผ์šฐํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์—ก์ œ์— ๋ณด์—ฌ์ฃผ๋Š” ์‹คํ–‰๊ณผ์ •์€ ๋งž์ง€๋งŒ

    ์šฐ๋ฆฌ๋Š” ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์…‹ํŒ…ํ•˜๊ณ  ๋ผ์šฐํ„ฐ๋ฅผ ์‹คํ–‰ํ•œ ๋’ค ๊ธฐ๋Šฅ๊ตฌํ˜„์„ ํ•ด์•ผํ•˜๋Š” ๊ณผ์ •์„ ๊นจ๋‹ฌ์€ ๊ฒƒ์ด

    ์ •๋ง ์–ด๋ ค์› ๋‹ค ๊ธฐ๋Šฅ๊ตฌํ˜„๋„ ์–ด๋ ต์ง€๋งŒ ์ด๋Ÿฐ ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š”๋ฐ 2~3์ผ ๊ฑธ๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค,,,

    ์•„์ง๋„ ํ”„๋ก ํŠธ๋ž‘ ๋ฐฑ์ด๋ž‘ ์„œ๋ฒ„ ํ•‘ํ์ด ์ด๋ค„์ง€๋Š” ๊ณผ์ •์ด ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ด๋Š” ์•ˆ๋œ๋‹ค,,,

    ์–ธ์ œ์ฏค ๋ ๋ ค๋‚˜ ;;;;

    ๋ฒŒ์จ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ ๋„ ์„น์…˜2๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ๋‹ค,,, ์„œ๋ฒ„ ์—ฐ๋™์ด ์ง„์งœ ํ”„๋ก ํŠธ์—์„œ ๋‚œ ์ ค ์–ด๋ ค์›€

    ํ”„๋ก ํŠธ ๋งŒ๋ ™ ๊ฐ€์ฆˆ์•„ !

    ๋ฐ˜์‘ํ˜•

    'codeStates front-end > node(server)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    ์›น ํ‘œ์ค€ & ์ ‘๊ทผ์„ฑ  (0) 2023.02.28
    JSON.stringify  (0) 2023.02.14
    StatesAirline Server  (0) 2023.02.09
    Refactor Express  (0) 2023.02.08
    Mini-Node Server  (0) 2023.02.08

    ๋Œ“๊ธ€

Designed by Tistory.