๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒŒ | WEB DEV/NodeJS

[NodeJS+Express] 2.์ƒˆ๋กœ์šด ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

by KASSID 2023. 9. 23.

๋ชฉ์ฐจ

    728x90
    //server.js
    
    const express = require('express')
    const app = express()
    
    //PORT ์—ด๊ธฐ
    app.listen(8080, ()=>{
      console.log('http://localhost:8080 ์—์„œ ์„œ๋ฒ„ ์‹คํ–‰์ค‘!');
    })
    
    //root์—์„œ GET์š”์ฒญ(์ ‘์†)์‹œ ๋ Œ๋”๋งํ•  ๋‚ด์šฉ
    app.get('/', (req, res)=>{
      res.send("HELLO!!");
    })

    ์ €๋ฒˆ ํฌ์ŠคํŠธ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค.

     

    ๋‹จ ํ•œ๊ฐœ์˜ ํŽ˜์ด์ง€๋งŒ ์ œ์ž‘ํ•˜์˜€๋Š”๋ฐ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

     

    1. ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€ ๋งŒ๋“œ๋ ค๋ฉด?

    ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ? 

     

    ์šฐ๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  ์‚ฌ์ดํŠธ์— ์ ‘์†ํ• ๋•Œ URL์„ ์ด์šฉํ•œ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด์ž.

     

    1) URL

    URL์˜ ๊ตฌ์„ฑโ–ผ

     

    ์œ„์˜ ๊ตฌ์„ฑ์„ ๊ฐ–๋Š” URL์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ path์ด๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ๋‰ด์Šค ํŽ˜์ด์ง€๋Š” /news, ์Šคํฌ์ธ  ํŽ˜์ด์ง€๋Š” /sports ๋“ฑ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

     

     


    2. NodeJS์—์„œ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

    1) ์ƒˆ๋กœ์šด path ์ƒ์„ฑ

    ์ด์ œ NodeJS์—์„œ ํŽ˜์ด์ง€ ์ฆ‰, path๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

    app.get('/path๋ช…', (req, res)=>{ //req, res๋Š” ์ž„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…!
      res.send("์ ‘์† ์‹œ ๋ณด๋‚ผ ๋‚ด์šฉ");
    })

     

    ์ฆ‰, ์œ„์—์„œ ์ฒ˜์Œ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๋•Œ ์ž‘์„ฑํ–ˆ๋˜ ์•„๋ž˜์˜ ์ฝ”๋“œ๋„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    ๋‹จ์ง€ path๊ฐ€ '/' ์ธ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ์˜ ์ ‘์†์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์ธ ๊ฒƒ์ด๋‹ค.

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

     

     

    2) html ํŒŒ์ผ ์ „์†กํ•˜๊ธฐ

    ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ ‘์†์„ ์š”์ฒญํ–ˆ์„๋•Œ ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ๋‹ค.

    ์ด๋ฒˆ์—๋Š” html ํŒŒ์ผ์„ ์ „์†กํ•ด๋ณด์ž.

     

    (1) html ํŒŒ์ผ ์ƒ์„ฑ

    ๋จผ์ € html ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. (๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋‹ˆ๊นŒ ์ผ๋‹จ ์ด๋ ‡๊ฒŒ!)

     

    <!DOCTYPE html>
    <html lang="ko">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>
      <h2>Hello Stranger!</h2>
    </body>
    </html>

     

     

    (2) jsํŒŒ์ผ ์ˆ˜์ •

    ์•„๋ž˜์˜ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด๋ณด์ž!

    //server.js
    
    const express = require('express')
    const app = express()
    
    //PORT ์—ด๊ธฐ
    app.listen(8080, ()=>{
      console.log('http://localhost:8080 ์—์„œ ์„œ๋ฒ„ ์‹คํ–‰์ค‘!');
    })
    
    //root์—์„œ GET์š”์ฒญ(์ ‘์†)์‹œ ๋ Œ๋”๋งํ•  ๋‚ด์šฉ
    app.get('/', (req, res)=>{
      res.send("HELLO!!");
    })

     

    res.sendFile(ํŒŒ์ผ๊ฒฝ๋กœ)

    sendFile()์€ ํŒŒ์ผ์„ ๋ Œ๋”๋งํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ธ์ˆ˜์— ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

    //root์—์„œ GET์š”์ฒญ(์ ‘์†)์‹œ ๋ Œ๋”๋งํ•  ๋‚ด์šฉ
    app.get('/', (req, res)=>{
      res.sendFile(__dirname + "/index.html");
    })

    [ ํŒŒ์ผ ๊ฒฝ๋กœ ]

    โ‘  __dirname : ํ˜„์žฌ ํŒŒ์ผ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    โ‘ก "/index.html" : ๋ Œ๋”๋งํ•  ํŒŒ์ผ์ธ index.html์€ ํ˜„์žฌ ํŒŒ์ผ(server.js) ๊ธฐ์ค€ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์œผ๋ฏ€๋กœ ์ด์™€๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

     

     

    ๊ฒฐ๊ณผ

     

    ์ž˜๋‚˜์˜จ๋‹ค!

    ๋Œ“๊ธ€