티스토리 뷰

Server/Node.js

[Node.js] 회원기능을 포함한 게시판

공부하는 승승 2023. 7. 19. 23:58

회원가입

<login.ejs>

<h4 class="container mt-4"><strong>회원가입</strong></h4>
<div class="container mt-3">
    <form action="/register" method="POST">
        <div class="form-group">
            <label>아이디</label>
            <input type="text" class="form-control" name="id" />
        </div>
        <div class="form-group">
            <label>비밀번호</label>
            <input type="text" class="form-control" name="pw" />
        </div>
        <button type="submit" class="btn btn-outline-secondary">가입</button>
    </form>
</div>

 

 

<server.js>

/* 회원가입 */
app.post('/register', function (요청, 응답) {
    db.collection('login').insertOne({ id: 요청.body.id, pw: 요청.body.pw }, function (에러, 결과) {
        응답.redirect('/');
    });
});

 

게시글에 작성자 추가

<server.js>

app.post('/add', function (요청, 응답) {
    응답.send('전송완료');
    db.collection('counter').findOne({ name: '게시물갯수' }, function (에러, 결과) {
        console.log(결과.totalPost);

        var 총게시물갯수 = 결과.totalPost;
        var 저장할거 = { 
            _id: 총게시물갯수 + 1, 
            title: 요청.body.title, 
            date: 요청.body.date, 
            writer: 요청.user._id // 이 부분 추가
        };

        db.collection('post').insertOne(저장할거, function (에러, 결과) {
            console.log('저장완료');)
            db.collection('counter').updateOne(
                { name: '게시물갯수' },
                { $inc: { totalPost: 1 } },
                function (에러, 결과) {
                    if (에러) {
                        return console.log(에러);
                    }
                }
            );
        });
    });
});

 

 

본인 글만 삭제 가능하게

<server.js>

app.delete('/delete', function (요청, 응답) {
    console.log(요청.body); // 요청시 함께 보낸 데이터를 찾기(게시글 번호)
    요청.body._id = parseInt(요청.body._id); // 문자가 된 id값을 다시 숫자로 변환

	// body._id의 글에 저장된 작성자 id와 동일할 때 삭제
    var 삭제할데이터 = { _id: 요청.body._id, writer: 요청.user._id };
    db.collection('post').deleteOne(삭제할데이터, function (에러, 결과) {
        console.log('삭제완료');
        if (에러) {
            console.log(에러);
        }
        응답.status(200).send({ message: '성공' });
    });
});

 

 

 

댓글