[Node.JS] Express์™€ Nodemon ๐Ÿ˜ˆ

June hyoung Parkยท2020๋…„ 7์›” 25์ผ
0

NodeJs

๋ชฉ๋ก ๋ณด๊ธฐ
2/8
post-thumbnail
post-custom-banner

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

Node.js ๋ฅผ ์ ‘ํ•˜๊ฒŒ๋˜๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์›นํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋ฌ๋‹ค. express, koa, hapi ์™€ ๊ฐ™์€ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ธ๊ธฐ๊ฐ€ ๋งŽ์€ 'express๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœํ–ˆ๋‹ค.' ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋Š” Node.js ๊ฐœ๋ฐœ ์‹œ ์ „์ฒด์ ์ธ ์ž‘์—…์„ ์†์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

Express ๋Š” ๊ฐ์ข… ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๋“ค์›จ์–ด(middleware)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์˜ ๋ฏธ๋“ค์›จ์–ด๋Š” ๊ฐœ๋ฐœ์ž ์‹œ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ์„ ํƒํ•˜์—ฌ Express ์™€ ๊ฒฐํ•ฉํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฏธ๋“ค์›จ์–ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

์„ค์น˜

// npm
npm install express --save

// yarn
yarn add express

npm์ด๋‚˜ yarn์œผ๋กœ ์†์‰ฝ๊ฒŒ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์‹œ์ž‘ํ•ด๋ณด๊ธฐ

const express = require('express');//express ๋ชจ๋“ˆ ๊ฐ€์ ธ์˜ค๊ธฐ.
const app = express();//Express ๊ฐ์ฒด ์ƒ์„ฑ
const port = 3000;//๋ณ€์ˆ˜ 'port' ์„ ์–ธ

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

app.get('/profile', (req, res) => { // URL + Callback 
    res.send("Profile page"); 
});

//port
app.listen(port,()=>{
    console.log("Express server on port 3000!");
});/*์œ„์—์„œ ์„ ์–ธํ•œ port๋ณ€์ˆ˜ , ๊ทธ๋ฆฌ๊ณ  ์š”์ฒญ๋Œ€๊ธฐ ์™„๋ฃŒ ์‹œ ์‹คํ–‰ ๋  ์ฝœ๋ฐฑํ•จ์ˆ˜ ์ง€์ • -> (()=>{
    console.log("Express server on port 3000!");*/

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์˜ ๊ฐ„๋‹จํ•œ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. ์ค‘๊ฐ„์— 'get'์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด 'localhost:3000/'์ฆ‰, ๊ธฐ๋ณธ ํŽ˜์ด์ง€์ธ root ํŽ˜์ด์ง€์™€ 'localhost:3000/profile'์ด๋ž€ ์ž„์˜์˜ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์คฌ๋‹ค.

HTTP๋ฅผ ํ†ตํ•œ ์š”์ฒญ ๋ฐฉ์‹์—๋Š” ์ฃผ๋กœ 'get', 'post'๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์‚ฌ์‹ค ๊ทธ ๋ฐ–์—๋„ head, put, delete, trace, options, connect ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ๋ณดํ†ต Rest api๋ฅผ ์œ„ํ•ด POST, GET, PUT ,DELETE ๋ฉ”์„œ๋“œ๋งŒ ์‚ฌ์šฉํ•ด๋„ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ request ๋ฉ”์„œ๋“œ์ธ get, post์— ๋Œ€ํ•ด์„  ๋””ํ…Œ์ผํ•œ ์ •๋ฆฌํ›„์— ๋”ฐ๋กœ ๊ธ€์„ ์—…๋กœ๋“œํ•  ์˜ˆ์ •์ด๋ฉฐ, Node JS๋ฅผ ์•Œ์•„๊ฐ€๋Š” ๊ธด ์—ฌ์ •์— ํฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” 'Nodemon'์ด๋ผ๋Š” ์œ ์šฉํ•œ ํˆด์„ ์†Œ๊ฐœํ•ด๋ณผ๊นŒ ํ•œ๋‹ค.




Nodemon

Node.js ๊ฐœ๋ฐœ ์‹œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋“ค์„ ์ˆ˜์ • ํ• ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ctrl+c๋ฅผ ํ†ตํ•ด node๋ฅผ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€ ์ด ์žˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ํŒŒ์ผ๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ˆ˜์ •๋  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์žฌ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง ์œ ํ‹ธ๋ฆฌํ‹ฐ nodemon๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๋‹นํžˆ ์ค„์–ด๋“ ๋‹ค!

์„ค์น˜

// npm
npm install nodemon -g

์ปค๋งจ๋“œ๋ผ์ธ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ์— ์ „์—ญ ์„ค์น˜๋ฅผ ํ•ด์ฃผ๋„๋ก ํ•˜์ž

์‹œ์ž‘ํ•ด๋ณด๊ธฐ

๊ธฐ์กด ๋ฐฉ์‹์ด node ~.js ์˜€๋‹ค๋ฉด nodemon ~.js ๋กœ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ทธํ›„ main.js๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅํ•ด๋„ nodemon์ด ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์žฌ์‹คํ–‰ ์‹œ์ผœ์ฃผ๋Š”๊ฒƒ์„ ์•Œ์ˆ˜์žˆ๋‹ค.

์—ฌ๋‹ด์œผ๋กœ package.json์˜ "script"์— nodemon main.js๋ฅผ ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค. ์ด์ œ npm start๋ฅผ ํ†ตํ•ด
์ข€๋” ํŽธ๋ฆฌํ•œ node ~.js ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.๐Ÿ˜ƒ

profile
Take me home~~~~
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€