Express

ํ•™์Šต ํ‚ค์›Œ๋“œ

  • Express

Express

๐Ÿ“– Express๋ž€?

๐Ÿค” ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ node.js๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค.์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„  HTTP ํ†ต์‹ ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„ค์ •์„ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ณผ์ •์€ ๋ณต์žกํ•˜๋‹ค.๊ทธ๋ž˜์„œ ์‰ฝ๊ฒŒ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ํ”„๋ ˆ์ž„์›Œํฌ Express๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • Node.js๋ฅผ ์œ„ํ•œ ๋น ๋ฅด๊ณ  ๊ฐœ๋ฐฉ์ ์ธ ๊ฐ„๊ฒฐํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ

  • Node.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ํด๋ž˜์Šค์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ง‘ํ•ฉ์ฒด

  • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜, API ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์„ค๊ณ„ ๋˜์—ˆ๋‹ค.

๐Ÿค– ๊ฐ„๋‹จํ•œ ์„œ๋ฒ„ ์•ฑ npm ํŒจํ‚ค์ง€ ์„ธํŒ… (feat.Typescript)

  1. ์ž‘์—… ํด๋” ์ค€๋น„

mkdir express-demo-app
cd express-demo-app
  1. ํŒจํ‚ค์ง€ ์ดˆ๊ธฐํ™”

npm init -y
  1. .gitignore ํŒŒ์ผ ์ƒ์„ฑ

echo CLI ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด node_modules ์ œ์™ธ ์ฒ˜๋ฆฌ

touch .gitignore
echo "/node_modules/" > .gitignore
  1. TypeScript ์„ค์น˜

npm i -D typescript
npx tsc --init
  1. ts-node ์„ค์น˜

์ปดํŒŒ์ผ์„ ์—†์ด Node.js์—์„œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ Typescript ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜

npm i -D ts-node
  1. ESLint

npm i  -D eslint
npx eslint --init
? How would you like to use ESLint? โ€ฆ
โฏ To check syntax, find problems, and enforce code style

? What type of modules does your project use? โ€ฆ
โฏ JavaScript modules (import/export)

? Which framework does your project use? โ€ฆ
โฏ None of these 

? Does your project use TypeScript?
โฏ Yes

? Where does your code run? โ€ฆ
โœ” Node 

? How would you like to define a style for your project? โ€ฆ
โฏ Use a popular style guide

? Which style guide do you want to follow? โ€ฆ
โฏ XO: https://github.com/xojs/eslint-config-xo-typescript

? What format do you want your config file to be in? โ€ฆ
โฏ JavaScript

? Would you like to install them now with npm?
โฏ Yes

? Which package manager do you want to use? โ€ฆ 
โฏ npm
  1. Express ์„ค์น˜

npm i express
npm i -D @types/express

Hello World ์˜ˆ์ œ

  1. app.ts ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์ฝ”๋“œ ์ž‘์„ฑ

touch app.ts 
import express from 'express';

const port = 3000;

const app = express();

app.get('/', (req, res) => {
    res.send('Hello, world!');
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});
  1. ts-node๋กœ ์‹คํ–‰

npx ts-node app.ts
  1. ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋ฅผ ์žฌ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด nodemon ์„ค์น˜

  • ts-node์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ts-node ์„ค์น˜ ํ›„ ์‚ฌ์šฉ

  • ์‹ค์ œ ์„œ๋น„์Šค์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

npm i -D nodemon
npx nodemon app.ts
  1. package.json ํŒŒ์ผ scripts ์ถ”๊ฐ€

 "scripts": {
    "start": "nodemon app.ts",
    "lint": "eslint --fix ."
  },

๐Ÿ”— ์ฐธ๊ณ 

Last updated