TIL 36: [Web Server] ๊ธฐ์ดˆ

์˜ค๋Š˜์€ Express.js ๋ฅผ ์‚ฌ์šฉํ•œ ์›น์„œ๋ฒ„ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. JS ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ํŠน์ด ๋งŽ์•„ ์•„์ง ์ต์ˆ™ํ•˜์ง€ ์•Š๋„ค์šฉ๐Ÿฅฒ ๋งˆ์ € ๋” ๋ณต์Šตํ•ด๋ณด๋ฉฐ ์ œ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

 

 

Express.js

Express.js๋Š” JavaScript์—์„œ ์ธ๊ธฐ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ธ MERN stack(MongoDB, Express, React, Node) ์ค‘ ํ•˜๋‚˜๋กœ, Node.js ํ™˜๊ฒฝ์—์„œ ์›น ์„œ๋ฒ„ ๋˜๋Š” API ์„œ๋ฒ„๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

๋ฏธ๋“ค์›จ์–ด๋Š” ๋ง๊ทธ๋Œ€๋กœ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์˜ ํ”„๋กœ์„ธ์Šค์— ๊ด€์—ฌํ•ด์„œ ํŠน์ • ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • Endpoint๊ฐ€ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์š”์ฒญ์— ๋™์ผํ•œ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ๋ฉ”์†Œ๋“œ app.use ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์ด์™ธ ๋ฐฐ์šด ๊ฒƒ๋“ค

Lodash Library

ํŽ˜์–ด๋ถ„์ด ๊ฐ€๋ฅด์ณ์ฃผ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๋ฐ Underbar์—์„œ ํ™œ์šฉํ–ˆ๋˜ Underscore์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

// ํ„ฐ๋ฏธ๋„์—์„œ lodash ์„ค์น˜ ํ›„

const _ = require('lodash'); // js ํŒŒ์ผ ์ƒ๋‹จ์— ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•ด์„œ lodash ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

booking.filter((item) => _.isMatch(item, req.query)) //_.isMatch()๋Š” lodash Method์˜ ์ผ์ข…

 

 

StatesAirline-Server

req.query๋Š” ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

update: async (req, res) => {
    let data;
    //TODO: 
    flights.forEach((item, index) => {
      if(item.uuid === req.params.id){
        flights[index] = {...item, ...req.body}; //item์— ๋ฐฐ์ •ํ•ด์ฃผ๋ฉด ์‹คํ–‰ ์•ˆ๋จ.
        data = flights[index];
      }});
    return res.status(200).json(data);
  }

forEach๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ์š”์†Œ(item)๋ฅผ ๋‹ค๋ฅธ ์š”์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•ด

item = data ๋กœ ํ•ด์ฃผ๋ฉด ์•ˆ๋˜๊ณ , 

flights[index] = {...item, ...req.body} ์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•ด์ค˜์„œ ์š”์†Œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

Toy Problem 13_Insertion Sort

Callback ํ•จ์ˆ˜๊ฐ€ undefined ๋˜์–ด์žˆ์„ ๋•Œ๋ฅผ ๊ณ ๋ คํ•ด์„œ, ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ์ต๋ช…ํ•จ์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๊ธฐ.

  if (!cb) {
   cb = (num) => {
     return num;
   }
  }