๐ŸŒฑ โ†’ ๐ŸŒณ

[node.js] Express ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ ๋ณธ๋ฌธ

Server/Node.js

[node.js] Express ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ

thals0 2022. 9. 5. 17:20
728x90

๐Ÿ“Œ Static

: ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ํด๋”์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด ์ฃผ๋Š” ์—ญํ• 

app.use(express.static('views'));

 

 

์œ„์˜ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํด๋” ๊ฒฝ๋กœ์˜ ์‹œ์ž‘์  -> localhost:4000/views

./ ์˜ ์ƒ๋Œ€ ๊ฒฝ๋กœ  -> localhost:4000/views/ ์™€ ๋™์ผํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง 

๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธ ํด๋”๋ฅผ ์„ค์ •ํ•˜๋Š” ๋งŒํผ ๋„ˆ๋ฌด ๋งŽ์€ ํด๋”๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•˜๋Š” ํŽธ์ด ์ข‹์Œ

๋ณดํ†ต public ์ด๋ผ๋Š” ํด๋”๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •ํ•ด ๋†“๊ณ  ํ•ด๋‹น ํด๋”๋งŒ ์„ค์ •

public ํด๋”์˜ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ๋“ฑ์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ํด๋”๋กœ์จ ๋ณดํ†ต CSS, ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉํ•˜๋Š” JS, ์ด๋ฏธ์ง€ ๋“ฑ์„ ์œ„์น˜

 

๐Ÿ“Œ Express ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ

 

/images = /img

/javsscript = /js

/stylesheets = /css

 

๐Ÿ“Œ Express ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ 

app.js -> ์ œ์ผ ์™ธ๋ถ€๋กœ ์ด๋™

npm start๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‹คํ–‰์ด ๋  ์ˆ˜ ์žˆ๋„๋ก, package.json ์ˆ˜์ •

"scripts": {
    "server": "nodemon app.js",
    "start": "nodemon --watch \"./routes/*.js\" --exec \"npm run server\""
  },

 

โœ… puclic ํด๋” ์„ค์ • 

public ํด๋” ๋งŒ๋“ค๊ณ  static ์„ค์ • 

// app.js
app.use(express.static('public'));
public/css ํด๋” ๋งŒ๋“ค๊ณ  css ํŒŒ์ผ ์˜ฎ๊ธฐ๊ธฐ
public/js ํด๋” ๋งŒ๋“ค๊ณ  test.js ํŒŒ์ผ ๋„ฃ๊ธฐ

 

โœ… routing ์ฒ˜๋ฆฌ

๊ฐ๊ฐ ๊ธฐ๋Šฅ์„ ํŒŒ์ผ๋กœ ๋‚˜๋ˆˆ ๋’ค, ๋ชจ๋“ˆ ํƒ€์ž…์œผ๋กœ ๋ผ์šฐํŒ… ์ฒ˜๋ฆฌ

ex) users ๊ธฐ๋Šฅ 

routes/users.js ํŒŒ์ผ์—์„œ user์— ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ ์ „๋ถ€ ์ฒ˜๋ฆฌ 

const express = require('express');
const router = express.Router();

users์˜ ๊ธฐ๋Šฅ์€ router ๋ผ๋Š” ๊ฐ์ฒด์— ๋‹ด์•„ ๋ชจ๋“ˆ๋กœ exports ํ•˜๊ณ 

ํ•ด๋‹น ๋ชจ๋“ˆ์„ app.js ์—์„œ require ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•  ์˜ˆ์ •

-> router ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํ†ต์ผํ•ด์„œ ๋‹ด๊ธฐ

+ users ๊ด€๋ จ ๊ธฐ๋Šฅ ์˜ฎ๊ธฐ๊ณ  ๋ฐ์ดํ„ฐ ๋‹ด๋‹น ๋ณ€์ˆ˜, ๊ธฐ์กด์— ๋งŒ๋“  router ๋ฏธ๋“ค ์›จ์–ด๋“ค ์˜ฎ๊ธฐ๊ธฐ

 

๐Ÿ“๋ชจ๋“ˆ ๋นผ๊ธฐ, ๊ฐ€์ ธ์˜ค๊ธฐ

// users.js
module.exports = router;
// app.js
const userRouter = require('./routes/users');
app.use('/users', userRouter);

 

728x90