Node js / ID,PW 가져오기

이율곡·2023년 1월 9일
0

Node js

목록 보기
2/26
post-thumbnail

입력한 값 가져오기(ID, PW)

이전 포스트에서 작성한 내용에 새롭게 덧붙여서 작성했다.

오늘 공부한 내용은 사용자가 보낸 정보를 서버에서 받고 가공하는 내용이었다. 그래서 그것을 활용하여 사용자의 ID와 PW를 받는 작업을 작성했다.

우선 models/login.js 를 만들었다. 단순하게 관리자 여부를 판단하고 그렇지 않으면 유저임을 체크하는 함수만 넣었다.

class login {
    constructor(id, pw) {
        this.id = id;
        this.pw = pw;
    }

    check(id, pw){
        if(id == 'admin' && pw == 1234) {
            console.log('admin ID login!');
        } else {
            console.log('user ID login');
        }
    }
}

module.exports = login;

그리고 routes/index.js 파일에는 라우터를 추가해주었다.

router.post('/login', controller.login);

html은 정말 간단하게 필요한 것만 추가하였다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>index</title>
</head>
<body>
    <main>
        <div>
            <form action="/login" method="post">
                <label>ID</label>
                <input type="text" name="id" id="id" /><br />
                <label>PW</label>
                <input type="password" name="pw" id="pw"><br />
                <button type="submit">submit</button>
            </form>
        </div>
    </main>
</body>
</html>

마지막으로 routes/cotroller.js 코드이다.

var login = require('../models/login');

...

exports.login = function(req, res) {
    var body = [];
    req.on('data', (chunk) => {
        body.push(chunk);
        console.log(body);
    });

    req.on('end', (req, res) => {
        var parsedBody = Buffer.concat(body).toString();
        var log = parsedBody.split('&');
        var id = log[0].split('=')[1];
        var pw = log[1].split('=')[1];

        var checkLog = new login();
        checkLog.check(id, pw);
    });
    fs.readFile('./views/login.html', function(err, buf) {
        res.end(buf);
    });
};

우선 사용자가 보낸 값을 body로 정렬한 다음 parsedBody에 문자열로 넣어주었다. 그러면 값이

ex) parsedBody = "id=admin&pw=1234"

위와 같은 형태로 들어오게 되는데 이를 split으로 나눠서 log에 넣으면 log는 spring 배열의 형태를 같는다.

log = ['id=admin']['pw=1234']

그 후 id와 pw변수를 만들어 log 배열의 값을 각각 변수에 맞게 split으로 나누고 넣어주면 id값과 pw값을 가질 수 있다.

id = admin
pw = 1234

처음으로 배운 내용을 통해서 Node js를 활용하여 쓸 수 있는 기술을 익혔다. 아직 갈 길이 멀다고 생각하지만, 스스로 ID와 PW 값을 뽑아냈을 때는 오랜만에 개발하면서 뿌듯함을 느꼈다. 목표로 한 4월이 됐을 때는 이보다 더 성장했으면 한다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글