๐Ÿ’ป BackEnd/๐ŸŸฉ NodeJS

[Network] [NodeJS] ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

Dbswnstjd 2022. 5. 2. 21:08

NodeJS ๋กœ๊ทธ์ธ

๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ์„ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 

๊ตฌํ˜„ ๋ฐฉ๋ฒ•

localhost:3000/login์œผ๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด login.html ํŒŒ์ผ์„ ๋ Œ๋”๋ง ํ•ด์ค€๋‹ค. 

๊ทธ ํ›„์— ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์น˜๊ณ  ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด POST /login ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค. 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋น„์šฉ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๊ตฌํ˜„์—์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ๋กœ๊ทธ์ธ์ด ์ž˜ ๋˜๋Š”์ง€ ์ •๋„๋งŒ ํ™•์ธ ํ•  ์˜ˆ์ •์ด๋‹ค.  

 

login.html

<!DOCTYPE html>
<html>
  <head>
    <title>Simple Login</title>

    <meta charset="utf-8" />
  </head>
  <body>
    <!-- ๋กœ๊ทธ์ธํผ -->
    <div>
      <form action="/login" method="post">
        ์•„์ด๋”” : <input name="user_id" type="text" /><br />
        ๋น„๋ฐ€๋ฒˆํ˜ธ : <input name="user_pwd" type="password" /><br />
        <input value="๋กœ๊ทธ์ธ" type="submit" />
      </form>
    </div>
  </body>
</html>

์ผ๋‹จ ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ ํผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด login.html ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋‹ค. ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์นธ์ด ์žˆ๊ณ  ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

tcpServer.js

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
const user = {
  id: 'test',
  password: '1234',
}; // ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๋Œ€์‹  ํ•ด์ค„ user ์ •๋ณด
app.get('/', (req, res) => {
  res.sendFile(__dirname + '/client.html');
});

app.get('/login', (req, res) => {
  res.sendFile(__dirname + '/login.html');
});

app.post('/login', (req, res) => {
  console.log(req.body);
  const id = req.body.user_id;
  const password = req.body.user_pwd;
  console.log(id);
  if (id === user.id && password === user.password) res.redirect('/');
  // ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์ฟผ๋ฆฌ๋ฌธ์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋จ
  else res.send('์•„์ด๋””๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค. ');
});

์„œ๋ฒ„ ๋‹จ์—์„œ๋Š” login.html์—์„œ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— json์„ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค. 

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

POST ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. 

๋กœ๊ทธ์ธ์„ ํ•  ๋•Œ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ req.body ๋กœ ๋„˜์–ด์˜ค๊ฒŒ ๋˜๊ณ  login.html์—์„œ user_id, user_pwd๋กœ ์„ค์ •์„ ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— req.body.user_id ์™€ req.body.user_pwd ๋ฅผ id ์™€ password ์— ์ €์žฅํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด๋‘” user ๊ฐ์ฒด์˜ ์ •๋ณด์™€ ๋น„๊ตํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅด๋‹ค๋ฉด localhost:3000/ ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์‹œ์ผœ์ค€๋‹ค. 

์‚ฌ์šฉ์ž ์ •๋ณด๋Š” ์›๋ž˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜์—ฌ ๋น„๊ตํ•˜์—ฌ์•ผ ํ•˜์ง€๋งŒ ์–ด๋–ค ์‹์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ž„์˜๋กœ

๋งŒ๋“ค์—ˆ๋‹ค.

 

 

๋กœ๊ทธ์ธ ํ™”๋ฉด
๋กœ๊ทธ์ธ

์ด๋ ‡๊ฒŒ ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ•˜๊ฒŒ ๋˜๋ฉด ๋Œ€๋ฌธ์ž๋ฅผ ๋ณด๋‚ด๋ฉด ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ  ์†Œ๋ฌธ์ž๋ฅผ ๋ณด๋‚ด๋ฉด ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋งŒ๋“ค์–ด ๋†“์€ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋œ๋‹ค.

์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ