-
[Node.js] Express๋? (์ ์ ๋ฐ ์ฌ์ฉ๋ฒ)๐ Node.js 2024. 11. 7. 15:20
โญ Express๋?
Express๋ Node.js์์ ์ฌ์ฉํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์ ๋๋ค.
์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ์ HTTP ์์ฒญ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ๊ณ ,
๋น ๋ฅด๊ฒ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ RESTful API ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๋๋ก ํด์ค๋๋ค.
Express์๋ ํฐ ํน์ง์ด ๋๊ฐ์ง๊ฐ ์๋๋ฐ์!
๋ฐ๋ก ๋ผ์ฐํ ๊ณผ ๋ฏธ๋ค์จ์ด๋ฅผ ์ ๊ณตํ๋ ํ๋ ์์ํฌ๋ผ๋ ๊ฒ ์ ๋๋ค.
๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
Express์์ ๋ผ์ฐํ ์ด๋ ?
Express๋ app.get(), app.post() ๋ฑ๊ณผ ๊ฐ์ ๋ฉ์๋๋ฅผ ํตํด URL ๊ฒฝ๋ก์ HTTP ์์ฒญ ๋ฉ์๋(GET, POST ๋ฑ)์ ๋ฐ๋ผ ์ด๋ค ๋์์ ์ํํ ์ง ์ ์ํ ์ ์๋ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.๋ผ์ฐํ ์์
const express = require('express'); const app = express(); // GET ์์ฒญ => '/' (root) ๊ฒฝ๋ก app.get('/', (req, res) => { res.send('Get์์ฒญ'); }); // POST ์์ฒญ ์ฒ๋ฆฌ: '/post' ๊ฒฝ๋ก app.post('/post', (req, res) => { res.send('Post์์ฒญ'); }); // PUT ์์ฒญ ์ฒ๋ฆฌ: '/update' ๊ฒฝ๋ก app.put('/update', (req, res) => { res.send('Put์์ฒญ'); }); // DELETE ์์ฒญ ์ฒ๋ฆฌ: '/delete' ๊ฒฝ๋ก app.delete('/delete', (req, res) => { res.send('Delete์์ฒญ'); }); // ์๋ฒ ์์ app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); });
Express์์ ๋ฏธ๋ค์จ์ด๋ ?
Express๋ ๋ฏธ๋ค์จ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์ฒญ์ด ์๋ฒ์ ๋๋ฌํ๊ฑฐ๋ ์๋ต์ ๋ฐํํ๊ธฐ ์ ์ ํน์ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฏธ๋ค์จ์ด๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ฑฐ๋, ์ธ์ฆ์ ๊ด๋ฆฌํ๊ฑฐ๋, ๋ก๊น ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์์ฒญ์ ๋ํด์ ์ํ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ฒญ-์๋ต ํ๋ฆ์ ์ธ๋ฐํ๊ฒ ์ ์ดํ๊ณ , ์ ์ฐํ ์๋ฒ ๋์์ ๊ตฌํํ ์ ์์ต๋๋ค.Express๋ฅผ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด ์์ํด๋ณด๊ฒ ์ต๋๋ค.
1. ํ๋ก์ ํธ ์ด๊ธฐํ ( npm init )
Node.js ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํ๋ ๋ช ๋ น์ด์ ๋๋ค.
npm init ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ํ๋ก์ ํธ์ ํ์ํ ์ค์ ํ์ผ์ธ package.json ํ์ผ์ ์์ฑํ๊ฒ ๋ฉ๋๋ค
2. ๋ชจ๋ ์ค์น ( npm install express )
npm i(install) express ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด express ๋ชจ๋์ ์ค์นํฉ๋๋ค.
๋ชจ๋์ ์ค์นํ ๋ค, package.json์ ๋ณด์๋ฉด ์์ ๊ฐ์ด ๋ฐ๊ฒ๋๋ค.
express ๋ฒ์ ์ ํฌ์คํ ๋ ์ง ๊ธฐ์ค, 4.21.2 ๋ฒ์ ์ผ๋ก ์ค์น๊ฐ ๋์์ต๋๋ค.
๊ฐํน npm i express๋ฅผ ํตํด express ์๋ฒ๋ฅผ ์ค์นํ๋ค๊ณ ํ๋๋ฐ,
์๋ฐํ ๋งํ๋ฉด express ์๋ฒ๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์๋, express ์๋ฒ๋ฅผ ๊ตฌ์ถํ ๋ ํ์ํ ๋ชจ๋์ ์ค์นํ๋ ๊ฒ์ ๋๋ค!
์ด๋ฐ ์ฌ์ํ ๊ฒ ํ๋ํ๋๊ฐ ์์คํ ์์ฐ์ด ๋ ๊ฑฐ๋ผ ์๊ฐํ๊ณ ์ ์ด๋ณด์์ต๋๋ค...๐
์ถ๊ฐ๋ก
"scripts": {"test": "echo \"Error: no test specified\" && exit 1"},์ด ๋ถ๋ถ์, npm run test ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด "Error: no test specified"๋ผ๋ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ฉฐ,
ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ ์ฝ๋ 1๋ก ์ข ๋ฃ๋จ์ ์๋ฏธํฉ๋๋ค.
ํ ์คํธ ์คํฌ๋ฆฝํธ๊ฐ ์์ง ์ ์๋์ง ์์์์ ๋ํ๋ด๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ๊ฒ์ด๋,
๋น์ฅ ์ค์ํ๊ฑด ์๋๋๋ค.
3. ์คํ ํ์ผ ๋ง๋ค๊ธฐ ( app.js )
app.js ํ์ผ์ ๋ง๋ค์ด์ค๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ Express ๋ชจ๋์ ๋ถ๋ฌ์ค๊ณ , Express ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , ํฌํธ ์ค์ ๋ฐ ๋ผ์ฐํ ์ ์ ๋ฑ์ ํ๊ณ
์ต์ข ์ ์ผ๋ก ์๋ฒ๋ฅผ ๊ตฌ๋์ํฌ ๊ฒ์ ๋๋ค.
const express = require("express"); // express ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ const app = express(); // express ์ธ์คํด์ค ์์ฑ const port = 5000; // ํฌํธ ์ค์ const now = new Date(); // Date ๊ฐ์ฒด ์ธ์คํด์ค ์์ฑ app.get("/", async (req, res) => { console.log( "์คํ๋์์ต๋๋ค. : ", `${ now.getMonth() + 1 }์${now.getDate()}์ผ ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}` ); res.send( `${ now.getMonth() + 1 }์${now.getDate()}์ผ ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}` ); }); app.listen(port, () => { console.log("ํ์ฌ์๊ฐ : ", now); console.log(`${port}๋ฒ ํฌํธ ๋๊ธฐ์ค...`); });
์ ์ฅ์ ํ๊ณ node app.js๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์ํฉ๋๋ค.
์ด์ ๋ธ๋ผ์ฐ์ ์์ ์ค์ ๋ก ํธ์ถ์ ํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
res.send๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ์, console.log๋ฅผ ํตํด ํฐ๋ฏธ๋์ ํ์ฌ ์๊ฐ์ ๋์ ์ต๋๋ค.
๊ฐ๋จํ๊ฒ ๋์์ ๋ํด์ ์์๋ณด์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค๐
'๐ Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js] Node.js์ ์ ์์ ํน์ง (4) 2024.10.30 [Node.js] fs๋ชจ๋์ด๋?(์ฝ๊ธฐ, ์ฐ๊ธฐ, ์์ , ์ญ์ ) (0) 2024.08.29